用c++解决一下问题:问题描述 输入一个位数K输出K位范围内的所有水仙花数。输入格式 输入位数K。输出格式 每行一个输出相应的水仙花数样例输入 3样例输出 153370371407数据规模和约定3=K=7
#include <iostream>
#include <cmath>
using namespace std;
bool isNarcissistic(int num) {
int digit = log10(num) + 1; // 计算数字的位数
int temp = num;
int sum = 0;
while (temp > 0) {
int digit_num = temp % 10; // 取出个位数字
sum += pow(digit_num, digit); // 累加数字的digit次方
temp /= 10; // 去掉个位数字
}
return (sum == num); // 判断是否为水仙花数
}
int main() {
int K;
cin >> K;
int start = pow(10, K-1); // 起始数字
int end = pow(10, K) - 1; // 结束数字
for (int i = start; i <= end; i++) {
if (isNarcissistic(i)) {
cout << i << endl; // 输出水仙花数
}
}
return 0;
}
``
原文地址: http://www.cveoy.top/t/topic/h5bU 著作权归作者所有。请勿转载和采集!