int fun1(int a,int n) {
int ret = 1;
for (int i = 0;i <n;i++) {
ret *= a;
}
return ret;
}
void fun(int n) {
int sum = 0;
int len= 0;//计算数字位数
int temp = n;
while (temp) {
temp/= 10;
len++;
}
int i = n;
while (i) {
sum += fun1(i%10,len);
i /= 10;
}
if (sum == n) {
printf("是\n");
}
else printf("否\n");
}
int main() {
int n = 0;
scanf("%d",&n);
fun(n);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main(){
int x;
cin >> x;
int temp = x;
int ori = x;
int count = 0;
while(x!=0){
x=x/10;
count++;
}
cout << count << endl;
int sum = 0;
while(temp!=0){
int val = temp%10;
sum += pow(val,count) ;
temp=temp/10;
}
cout << sum <<" "<<ori;
if(sum==ori){
cout << "ok";
}else{
cout << "no";
}
}
登录后提交答案