解题思路:
穷举出所有可能的情况:

由于是三位数,则第一位数不能是0(为0则是二位数) i范围1~9


注意事项:

参考代码:

#include <stdio.h>
#include <math.h>
int main()
{
	for(int i=1; i<10; i++)
	{
		for(int j=0; j<10; j++)
		{
			for(int z=0; z<10; z++)
			{
				if(pow(i,3)+pow(j,3)+pow(z,3)==i*100+j*10+z)
				{
					printf("%d%d%d\n",i,j,z); 
				}
			}
		}
	}
}


点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 4 条评论

努力c 3年前 回复TA
@靓仔 main函数可以不加,其他必须加,具体还请上知乎。
靓仔 3年前 回复TA
为什么这个不用加return 0;呢
询文 4年前 回复TA
//pow()函数返回的是双精度的浮点型,容易出错,建议自己定义一个函数
#include "stdio.h"
int fun(int x){
	return x*x*x;
}
int main(){
	for(int i=100;i<1000;i++){
		int x=i/100;
		int y=i%100/10;
		int z=i%10%10;
		if(fun(x)+fun(y)+fun(z)==i)
			printf("%d\n",i);
	}
	return 0;
}
TTSV 4年前 回复TA
#include<stdio.h>
int main()
{
	int b1, b2,b3,n=99;
	for (; n < 999;)
	{
		n++;
		b1 = n / 100;
		b2 = (n - b1 * 100)/10;
		b3 = n - b1 * 100 - b2 * 10;
		if (b1 * b1 * b1 + b2 * b2 * b2 + b3 * b3 * b3 == n)
			printf("%d\n", n);
	}
	return 0;
}