#include <stdio.h> //程序2-2
#include <math.h>
int main()
{
int a,b,n;
double m;
for (a=1;a<=9;a++)
for (b=0;b<=9;b++)
{
n=a*1100+b*11;
m=sqrt(n);
if(floor(m+0.5)==m)
printf("%d",n);
}
return 0;
}
//习题2-1 位数(digit)
//输入一个不超过10^9的正整数,输出它的位数.
//请不要使用任何数学函数,只用四则运算和循环语句实现
#include <stdio.h>
int main()
{
int n,a=1,i=1;
scanf("%d",&n);
while (n/a>=10)
{
a*=10;
i++;
}
printf("%d\n",i);
return 0;
}
//习题2-2 水仙花数(daffodil)
//输出100~999中的所有水仙花数.若三位数ABC满足ABC=A^2+B^2+C^2,则称其为水仙花数.
//例如153=1^3+5^3+3^3,所以153是水仙花数.
#include <stdio.h>
int main()
{
int a,b,c,d;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
{ //这个括号重要,一个for只能跟一个语句
d=100*a+10*b+c;
if (d==a*a*a+b*b*b+c*c*c)
{
printf("%d\n",d);
}
}
return 0;
}
//习题2-3 韩信点兵(hanxin)
/*相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以
三人一排,五人一排,七人一排地变换队形,而他每次只掠一眼队伍的排尾
就知道总人数的最小值(或报告无解).已知总人数不小于10,不超过100.
样例输入:2 1 6
样例输出:41
样例输入:2 1 3
样例输出:No Answer*/
#include <stdio.h>
int main()
{
int a,b,c,n,flag;
scanf("%d%d%d",&a,&b,&c);
flag = 0;
for (n=10; n<=100; n++)
{
if((n-a)%3==0&&(n-b)%5==0&&(n-c)%7==0)
{
flag = 1;
break;
}
}
if(flag==1)
printf("%d\n",n);
else
printf("NO answer\n");
return 0;
}