循环求出每个数中1的个数的代码是怎样的?
循环求出每个数中1的个数,累计之,若满足f(n)=n,则退出,否则继续。
代码如下:
/**//**************************
* 0~n之间1的个数,如f(13)=6
* 1,2,3,4,5,6,7,8,9,10,11,12,13。 1的个数为6
* 要求:输入一个正整数n,求出f(n),及求解f(n)=n
***********************/
#include
#include
#include
class CalculationTimes
。 。。{
public:
CalculationTimes()。。。{}
~CalculationTime...全部
循环求出每个数中1的个数,累计之,若满足f(n)=n,则退出,否则继续。
代码如下:
/**//**************************
* 0~n之间1的个数,如f(13)=6
* 1,2,3,4,5,6,7,8,9,10,11,12,13。
1的个数为6
* 要求:输入一个正整数n,求出f(n),及求解f(n)=n
***********************/
#include
#include
#include
class CalculationTimes
。
。。{
public:
CalculationTimes()。。。{}
~CalculationTimes()。。。{}
int GetTimes(int n);
};
//计算正整数n中1的个数
int CalculationTimes::GetTimes(int n)
。
。。{
int count=0;
while(n)
。。。{
if(n%10==1)
count++;
n/=10;
}
return count;
}
//显示菜单
void show_menu()
。
。。{
printf(\"--------------------------------------------- \");
printf(\"input command to test the program \");
printf(\" i or I : input n to test \");
printf(\" g or G : get n to enable f(n)=n \");
printf(\" q or Q : quit \");
printf(\"--------------------------------------------- \");
printf(\"$ input command >\");
}
void main()
。
。。{
char sinput[10];
int n;
show_menu();
scanf(\"%s\",sinput);
while(stricmp(sinput,\"q\")!=0)
。
。。{
int t=0,count=0;
if(stricmp(sinput,\"i\")==0)
。。。
{
printf(\" please input an integer:\");
scanf(\"%d\",&n);
count=0;
CalculationTimes obj;
t=GetTickCount();
for(int i=1;i\");
scanf(\"%s\",sinput);
}
}。收起