2048!末尾有多少个0? 请描述具体思路, 并根据思路编写相应函数(用C/C++)
发布网友
发布时间:2022-04-30 19:54
我来回答
共3个回答
热心网友
时间:2023-10-09 21:55
数数有多少个2和5的因数。
因为2远多于5,只对5进行计数就可以了。
以下为一个简便的算法。
#include<stdio.h>
int main()
{
int n = 0;//输入目标数
int cnt_5 = 0;//用于计数因子5的计数器
scanf("%d", &n);//输入目标数
while(n != 0)//对因子5进行计数
{
n /= 5;
cnt_5 += n;
}
printf("There are %d 0s in %d!\n", cnt_5, n);//输出结果
return 0;
}
热心网友
时间:2023-10-09 21:56
11个,代码如下;
#include <iostream>
using namespace std;
int main()
{
int count = 1;
int num = 2048;
while( num/2 != 1)
{
num = num/2;
count++;
}
cout<<count<<endl;
return 0;
}
这个看有多少0,就看能整除2几次,就有多少0,然后计下数就可以了。
2048是100000000000
满意的话请采纳哦。
热心网友
时间:2023-10-09 21:56
粗略想了一下:
你统计下里面有多少个以0结尾,计为N;再统计多少个2和5结尾的,计为M。
最后0的位数就是N + M * 0.5
应该就是这样。