什么是自幂数?
如何求解n位数的自幂数呐?
1、求n位数的自幂数
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int n; //表示数的位数
int start,end; //表示n位数的起始值和终止值
int m; //待分解各位的数,即待判断的数
int digit; //某个数位的值
int sum; //各个位数n次方的和
int i; //循环变量,待检验的数
cout<<"Please input an integer:"<<endl; //给出提示信息
cin>>n; //输入位数
while(n > 0){
start = pow(10,n-1); //n位数的起始值
end = pow(10,n) - 1; //n位数的终止值
cout<<n<<"位自幂数:" ;//输出说明信息
for(i = start; i <= end; i++){ //从起始值到终止值逐个检查
m = i;
//检验过程中m的值会改变,而i的值不变
sum = 0; //各位数的n次方和
while(m != 0){
digit = m % 10; //取最低位数字
sum = sum + pow(digit,n);
m = m / 10;//更新m
}
if(sum == i){
cout<<i<<" "; //显示该数
}
}
cout<<endl;
cout<<"求n位自幂数,请输入位数:";
cin>>n;
}
cout<<endl;
return 0;
}