输入正整数m和n(设100≤m≤n≤999),输出m到n之间满足下列条件的三位数:
它的个位数的立方加十位数的平方再加上百位数等于该数的本身(例如135=1+33+55*5)。
本来觉得类似于求水仙花数的问题,结果越做越不对劲,循环那里老是不对。
就是类似于求水仙花数的问题,你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
#include <stdio.h>
int main()
{
int m,n,i,a,b,c;
scanf("%d%d", &m, &n);
for (i = m; i <= n; i++)
{
a = i % 10;
b = i / 10 % 10;
c = i / 100;
if (a*a*a+b*b+c==i)
{
printf("%d ", i);
}
}
return 0;
}
int main()
{
int n,m;
printf("请分别输入两个三位数:");
scanf("%d%d",&n,&m);
if(n>m)
{
int t = n;
n = m;
m = t;
}
int a,b,c;
for(int i=n;i<=m;i++)
{
a = i/100; //百位
c = i%10; //个位
b = (i-a*100-c)/10;
if(i==c*c*c + b*b + a)
printf("%d ",i);
}
return 0;
}
#include <stdio.h>
int main() {
int m, n;
scanf("%d%d", &m, &n);
for (int i = m; i <= n; i++) {
int a = i % 10;
int b = i % 100 / 10;
int c = i / 100;
if (a * a * a + b * b + c == i) {
printf("%d\n", i);
}
}
return 0;
}