题目要求 2^m - 1 转换成科学记数法后求10的次方数
因为2的次方不会出现10的倍数,所以我一边乘,遇到进十就计数加一 水过
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
long long a[100005];
double t;
void init(){
t=1;
for(int i=1;i<=100000;i++){
t*=2;
if(t>=10){
t/=10;
a[i] = a[i-1]+1;
}
else
a[i] = a[i-1];
}
}
main(){
long long m;
int Case=1;
memset(a,0,sizeof(a));
init();
while(~scanf("%lld",&m)){
printf("Case #%d: %lld\n",Case++,a[m]);
}
}
本文介绍了一种计算2^m-1转换为科学记数法后10的指数的方法。通过逐步乘以2并跟踪每次进位来实现计数,最终得到所需的指数数值。
305

被折叠的 条评论
为什么被折叠?



