PS:实在是找不到封面TAT,分享一张很喜欢的壁纸吧~WallpaperEngine里搜索“花与夜与蝶”。
那么废话不多说,先上代码(有没有大佬帮忙看看还有什么可优化的地方QAQ):
#include<iostream>
using namespace std;
int main()
{
//四叶玫瑰数指的是一个4位数每个位上的4次幂之和等于这个数本身
int a = 0;
int b = 0;
int c = 0;
int d = 0;
//1.输出所有的四位数
for (int sum = 1000; sum < 10000; sum++)
{
//2.找出其中的四叶玫瑰数并输出
//获取这个数的个位十位百位千位
a = sum % 10;//个位
b = sum / 10 % 10;//十位
c = sum / 100 % 10;//百位
d = sum / 1000;//千位
//判断这个数每一位上的4次幂是否等于它本身
if (a * a * a * a + b * b * b * b + c * c * c * c + d * d * d * d == sum)
{
cout << sum << endl;
}//判断这个数是否为四叶玫瑰数,是则输出此数
}
system("pause");
return 0;
}
四叶玫瑰数的定义是一个4位数的每一位上的4次幂之和等于这个数本身,那么我们称这个数为四叶玫瑰数。
那么想要输出所有的四叶玫瑰数,逻辑很简单:
1.输出所有的四位数