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;
}
相关文章
【OJ】贪心法(最小字典序)poj3617 Best Cow Line// acmclub 12701/12695
     题目链接:      点击打开链接 /* POJ 3617 Best Cow Line 贪心法——最小字典序 */ #include #include char ss[30010]; int main(){ int n,left1;scanf(...
1051 0
|
8月前
微机原理||数组排序、求最大数、负数个数程序
微机原理||数组排序、求最大数、负数个数程序
复习C部分://1.练习:打印1000~2000的闰年 //2.写一个代码,打印100~200之间的素数 3.goto 跳去哪里
复习C部分://1.练习:打印1000~2000的闰年 //2.写一个代码,打印100~200之间的素数 3.goto 跳去哪里
98 0
复习C部分://1.练习:打印1000~2000的闰年 //2.写一个代码,打印100~200之间的素数 3.goto 跳去哪里
|
C语言 C++ 编译器
再探C++数组的size可以是变量
学生在QQ群中贴图: 他说:“老师这个不报错。” 细看,定义数组时: int a; cin&gt;&gt;a; int A[a]; 这不科学,定义数组时,元素个数用变量,没有这么玩的! 有人跟上了:“我一直这么用!” 这还了得,十几年的修行,就这么塌了。C和C++一直在规定数组定义时,元素个数必须能确定。作为人工语言,就这么规定的,也在各种编译器中得到了贯彻。 学生猜测:“CodeBlock
1342 0
|
8月前
|
算法 C语言 Ruby
分形逃逸时间算法中的 Normalized Iteration Count(NIC)技术 让颜色更柔和
Normalized Iteration Count (NIC) 技术是一种提升逃逸时间算法中分形图像质量的方法,它产生更平滑的颜色过渡。数学公式表示为:`mu = n + 1 - log(log(|Z(n)|)) / log(p)`,其中 `Z(n)` 是迭代次数,`|Z(n)|` 是复数模长,`p` 通常取2。示例代码提供了 Ruby, Maxima 和 C 语言的实现。

热门文章

最新文章