6 条题解
-
1
#include <iostream> #include <cmath> // 用于 pow 函数 using namespace std; // 函数:检查一个数字是否是水仙花数 bool isNarcissistic(int number) { int original = number; int sum = 0; int n = 0; int temp = number; // 计算数字的位数 n while (temp != 0) { temp /= 10; n++; } temp = original; // 重置临时变量 // 计算各位数字的 n 次方和 while (temp != 0) { int digit = temp % 10; // 提取最后一位数字 sum += pow(digit, n); // 累加 n 次方 temp /= 10; // 移除最后一位 } return (sum == original); // 比较和与原数 } int main() { for (int i = 100; i <= 999; i++) { if (isNarcissistic(i)) { cout << i << "\n"; } } return 0; }
-
1
#include <iostream> using namespace std; int main() { for (int num = 100; num <= 999; ++num) { int hundreds = num / 100; // 百位 int tens = (num / 10) % 10; // 十位 int ones = num % 10; // 个位 if (hundreds * hundreds * hundreds + tens * tens * tens + ones * ones * ones == num) { cout << num << endl; } } return 0; }
-
1
思路
遍历1-1000所有数,使用数位分解获得个,十,百各个数位,计算立方和后与当前数对比,如果相等,输出。
题解
#include <iostream> #include <cstdio> using namespace std; int main() { int i, x, y, z; for (i = 100; i <= 1000; i++) { x = i % 10; // 个 y = (i / 10) % 10; // 十 z = (i / 100) % 10; // 百 int sum = x * x * x + y * y * y + z * z * z; if (i == sum) { cout<<i<<endl; } } return 0; }
-
1
来水第三篇题解力()
这题纯模拟
首先第一种方法按题意老老实实写能100但是运行次数较多
#include <bits/stdc++.h> using namespace std; int main() { for(int i=1;i<=9;i++) { for(int j=0;j<=9;j++) { for(int k=0;k<=9;k++) { int t=i*100+j*10+k; if(i*i*i+j*j*j+k*k*k==t) { cout<<t<<endl; } } } } return 0; }
第二种方法直接用每个数判断 循环次数会少很多
#include<bits/stdc++.h> using namespace std; int a,b,c; int main() { for(int i=100;i<=999;i++) { a=i/100; b=(i%100)/10; c=i%10; if(i==a*a*a+b*b*b+c*c*c) { cout<<i<<endl; } } return 0; }
- 1
信息
- ID
- 7
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 4
- 标签
- 递交数
- 71
- 已通过
- 33
- 上传者