51nod 2382 一半的一半 (sprintf()函数的用法)

简介: 51nod 2382 一半的一半 (sprintf()函数的用法)

输入n,牛牛想知道0.5的n次方的精确值。


注意是精确值,也就是小数有多少位,就要输出多少位,不四舍五入。(当然也不输出多余的0)


对于100%的数据,1 <= n <= 1000


对于60%的数据,1 <= n <= 27


对于30%的数据,1 <= n <= 4


sprintf指的是字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。解决这个问题,可以考虑使用 snprintf函数,该函数可对写入字符数做出限制。 [

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
char s[maxn];
int main() {
  int n;
  cin >> n;
  sprintf(s, "%.100000lf", pow(0.5, n));
  for (int i = 100000; i >= 0; i--) {
    if (s[i] != '0') {
      for (int j = 0; j <= i; j++)printf("%c",s[j]);
      break;
    }
  }
  return 0;
}
相关文章
|
5天前
|
算法 C语言 C++
【practise】数组中出现次数超过一半的数字
【practise】数组中出现次数超过一半的数字
|
2月前
atoi函数(想要彻底了解atoi函数,那么看这一篇就足够了!)
atoi函数(想要彻底了解atoi函数,那么看这一篇就足够了!)
|
3月前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——2、逐帧播放视频(VideoCapture函数、waitKey函数、0xFF == ord(‘1‘))
OpenCV这么简单为啥不学——2、逐帧播放视频(VideoCapture函数、waitKey函数、0xFF == ord(‘1‘))
46 0
|
3月前
【每日一题Day240】LC2481分割圆的最少切割次数 | fenlei
【每日一题Day240】LC2481分割圆的最少切割次数 | fenlei
18 0
学C的第二十四天【练习:1. 打印菱形;2. 打印自幂数;3. 求Sn=a+aa..n项之和;4. 喝汽水问题;5. 调整数组使奇数位于偶数前面;6. 打印X形图案;7……;8……;9……;10……】-2
5. 调整数组使奇数全部都位于偶数前面 题目: 输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。
107 0
51nod 1292 字符串中的最大值 V2 (后缀数组)
51nod 1292 字符串中的最大值 V2 (后缀数组)
46 0
51nod 1277 字符串中的最大值 (后缀数组求height[i])
51nod 1277 字符串中的最大值 (后缀数组求height[i])
51 0
|
C语言
复习C部分:1.设置关机程序 2.函数(strcpy,memset----替换函数;库函数;写一个函数,用该函数实现比较两个数的最大值;写一个数,交换两个整数类型的值)
复习C部分:1.设置关机程序 2.函数(strcpy,memset----替换函数;库函数;写一个函数,用该函数实现比较两个数的最大值;写一个数,交换两个整数类型的值)
78 0