How can I add more zeros to the number in hdu6033 problem efficiently?
- 内容介绍
- 文章标签
- 相关推荐
本文共计218个文字,预计阅读时间需要1分钟。
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6033
题目内容:编写一个程序,让你输入2^m-1次方,即2的m-1次方取以10为底的对数,得到的结果是几位数。
解析:由于不减少一位数,也不可能增加位数,所以可以直接输出结果。
题目链接:acm.hdu.edu.cn/showproblem.php?pid=6033
题意:让你求2^m-1次方里面是几位数,即对2^m-1取以10为底的对数
解析:由于不减一也不可能出现增加位数的情况,所以可以直接对2^m次方求对数,换底公式得ans = m*log(2)/log(10)
#include <bits/stdc++.h>
using namespace std;
int main(void)
{
int m,case_t = 1;
while(~scanf("%d",&m))
{
int ans = (int)(m*log(2)/log(10));
printf("Case #%d: %d\n",case_t++,ans);
}
return 0;
}
本文共计218个文字,预计阅读时间需要1分钟。
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6033
题目内容:编写一个程序,让你输入2^m-1次方,即2的m-1次方取以10为底的对数,得到的结果是几位数。
解析:由于不减少一位数,也不可能增加位数,所以可以直接输出结果。
题目链接:acm.hdu.edu.cn/showproblem.php?pid=6033
题意:让你求2^m-1次方里面是几位数,即对2^m-1取以10为底的对数
解析:由于不减一也不可能出现增加位数的情况,所以可以直接对2^m次方求对数,换底公式得ans = m*log(2)/log(10)
#include <bits/stdc++.h>
using namespace std;
int main(void)
{
int m,case_t = 1;
while(~scanf("%d",&m))
{
int ans = (int)(m*log(2)/log(10));
printf("Case #%d: %d\n",case_t++,ans);
}
return 0;
}

