四叶玫瑰数是指四位数各位上的数字的四次方之和等于本身的数。
四叶玫瑰数共有3个:1634,8208,9474
前注:这次的代码写的很泛用,其实改一下就可以求所有的自幂数,但是这里还是主要针对的是四叶玫瑰数。
具体实现如下:
#include <iostream>
using namespace std;
bool isRose(int num); //判断是否为四位玫瑰数的函数原型说明
int checkNumber(int num); //求所输入数字的位数函数的函数原型说明
int main(){
int a, b, flag = 1;
cin >> a >> b;
if (checkNumber(a) != 4){ //如果上限a不是四位数
cout << a << "不是四位数!" << endl;
}
if (checkNumber(b) != 4){ //如果下限b不是四位数
cout << b << "不是四位数!" << endl;
}
for (int i = a; i <= b; i++){ //循环求出a,b区间中的所有四位玫瑰数
if (isRose(i)){
cout << i << endl;
flag = 0; //flag用于标记有无输出四位玫瑰数,0表示输出过
}
}
if (checkN