习题2-1 位数(digit)
题目:输入一个不超过10^9的正整数,输出它的位数。例如12735的位数是5。请不要使用任何数学函数,只用四则运算和循环语句实现。
分析:考察循环的使用。
源码:
// 习题2-1 位数(digit)
#include <stdio.h>
int main(void)
{
int n, digit = 0;
scanf("%d", &n);
while(n)
{
digit++;
n /= 10;
}
printf("%d\n", digit);
return 0;
}
习题2-2 水仙花数(daffodil)
题目:输出100 ~ 999中的所有水仙花数,若3位数ABC满足ABC = A^3 + B^3 + C^3(书中题目有误,均写成了平方),则称其为水仙花数。例如153 = 1^3 + 5^3 + 3^3,所以153是水仙花数。
分析:循环。
源码:
// 习题2-2 水仙花数(daffodil)
#include <stdio.h>
int main(void)
{
int i, a, b, c;
for(i = 100; i <= 999; i++)
{
a = i/100;
b = i/10%10;
c = i%10;
if(i == a*a*a + b*b*b + c*c*c)
printf("%d is a daffodil number.\n", i);
}
return 0;
}
习题2-3 韩信点兵(hanxin)
题目:韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每