前面我们学习了do while循环,今天做一个练习:水仙花
题目:一个三位数(100-999),获取其中所有各个位数的相加等于这个数本身 的数
尽量自己先写一写,差不多了再看答案
思路:
- 先获取个位数的值
- 获取十位数的值
- 获取百位数的值
- 三者相加 进行判断
- 返回结果
代码:
int main() {
int i = 100;
do {
//个位数
int a = i % 10;
//十位
int b = i / 10 % 10;
//百位
int c = i / 100;
if (a*a*a+b*b*b+c*c*c==i) {
printf("%d\n", i);
}
i++;
} while (i<=999);
return 0;
}
结果:
拓展:
我们写立方要a*a*a,这样太繁琐,
求次方我们可以用一个方法
pow()方法
- 前置:需要math.h库
- 写法:pow(a,b):a=底数,b=次方
下面演示pow方法的代码,用上述代码举例:
if (pow(a,3)+pow(b,3)+pow(c,3)==i) {
printf("%d\n",i);
}