C语言学习day12:水仙花(do while)

前面我们学习了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;
}

结果:

C语言学习day12:水仙花(do while)_第1张图片

拓展:

 我们写立方要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);
}

你可能感兴趣的:(C语言学习,c语言,学习,开发语言)