a040. 阿姆斯壯數
C語言參考解答
c
#include<stdio.h>
int digits(int n) {
int result = 0;
while (n != 0) {
n /= 10;
result += 1;
}
return result;
}
int power(int n, int p){
int result = 1;
for(int i = 1; i <= p; i++) result *= n;
return result;
}
int isArm(int n){
int ori = n;
int digit = digits(n);
int sum = 0;
for (int i = 1; i <= digit; i++) {
sum += power((n % 10), digit);
n /= 10;
}
if (ori == sum) return 1;
return 0;
}
int main() {
int p, q;
scanf("%d %d", &p, &q);
int exist = 0;
for(int i = p; i <= q; i++){
if (isArm(i)) {
printf("%d ", i);
exist = 1;
}
}
if (!exist) printf("none");
}C++參考解答
cpp
#include<bits/stdc++.h>
using namespace std;
int digits(int n) {
int result = 0;
while (n != 0) {
n /= 10;
result += 1;
}
return result;
}
int power(int n, int p){
int result = 1;
for(int i = 1; i <= p; i++) result *= n;
return result;
}
bool isArm(int n){
int ori = n;
int digit = digits(n);
int sum = 0;
for (int i = 1; i <= digit; i++) {
sum += power((n % 10), digit);
n /= 10;
}
if (ori == sum) return true;
return false;
}
int main() {
int p, q;
cin >> p >> q;
int exist = 0;
for(int i = p; i <= q; i++){
if (isArm(i)) {
cout << i << " ";
exist = 1;
}
}
if (!exist) cout << "none";
}