知识基础:
for(表达式1;表达式2;表达式3){若干语句}//for循环语句及其格式
思路:水仙花数为三位数,所以循环从100开始,到999结束,i为int型变量,所以i/100的值也是一个int型变量(整数)(注:C语言的取整不是四舍五入,是直接舍去小数),i/100就是百位上的数,i和100求余就是剩下的两位数,i%100之后再除以10同理会得到十位上的数,原数字再和10求余就是个位上的数
答案
#include<stdio.h> int main(){ int i; for(i=100;i<=999;i++){ if(i==(i/100)*(i/100)*(i/100)+((i%100)/10)*((i%100)/10)*((i%100)/10)+(i%10)*(i%10)*(i%10)) printf("%d\n",i); } return 0; }
注:程序结束return 0;不可省。
0.0分
109 人评分
#include <stdio.h> int main() { int i = 0; int g = 0; int s = 0; int b = 0; for(i=100;i<1000;i++) { g = i % 10; s = (i / 10) % 10 ; b = (i / 100) % 10 ; if(g * g * g + s * s * s + b * b * b == i) { printf("%d\n",i); } } return 0 ; }。这样把取余这一步操作单独拿出来可能会更好点。
int x, i, sum=0,y; for (x = 100; x <= 999; x++) { y = x; sum = 0; for (i = 0; i < 3; i++) { int m = y % 10; y = y / 10; sum = sum + m * m * m; if (sum == x&&i==2) { printf("%d\n",x ); } } } return 0;我觉得还凑合
#include <bits/stdc++.h> using namespace std; int main() { int x,y, z, num; for (int num = 100; num <= 999; num++) { // 从100到999遍历所有数 for (int x = 1; x <= 9; x++) { // x从1到9遍历 for (int y = 0; y <= 9; y++) { // y从0到9遍历 for (int z = 0; z <= 9; z++) { // z从0到9遍历 num=x*100+y*10+z; if (num== x * x * x + y * y * y + z * z * z) { // 判断num是否等于x, y, z的立方的和 cout << num <<endl; } } } } } return 0; }为什么不对啊大佬们
#include<stdio.h> int main() { int a, b, c; int x=100; do{ a = x / 100; b = x / 10 % 10; c = x % 10; if((a*a*a+b*b*b+c*c*c) == x){ printf("%d\n",x); }else{ x++; } }while(x>=1000); return 0; }这样哪里错了求大佬指点
#include<stdio.h> int main() { int s; int i,j,k; int x[9][10][10]; for(i=1;i<=9;i++) { for(j=0;j<=9;j++) { for(k=0;k<=9;k++) { x[i][j][k]=i*100+j*10+k; if(x[i][j][k]==i*i*i+j*j*j+k*k*k) { s=x[i][j][k]; printf("%d\n",s); } } } } return 0; }
#include<stdio.h> #include<string.h> int main() { int i; char b[4]; for(i=100;(i>=100) && (i<=999);i++) { sprintf(b,"%d",i); if(i==(b[0]-'0')*(b[0]-'0')*(b[0]-'0') + (b[1]-'0')*(b[1]-'0')*(b[1]-'0') + (b[2]-'0')*(b[2]-'0')*(b[2]-'0')) printf("%d ",i); } return 0; }
int main() { int i,a,b,c,multi; for ( i = 100; i < 1000; i++) { a = i % 10; b = (i / 10) % 10; c = i / 100; multi = a * a * a + b * b * b + c * c * c; if (multi == i) { printf("%d ", i); } } return 0; }
huadad 2024-01-10 19:18:27 |
#include<stdio.h> int main() { int a, b, c; for (int i=100;i<1000;i++) { a = i /100; b = i % 100/10; c = i % 10; if (i !=a*a*a+b*b*b+c*c*c) { continue; } printf("%d\n", i); } return 0; }
#include<stdio.h> int main() { int a,b,c,m; for(m=100;m<1000;m++) { a=m/100; b=m%100/10; c=m%10; if(m==a*a*a+b*b*b+c*c*c) printf("%d\n",m); } return 0; }一起加油
奖学金 (C++代码)浏览:2053 |
C语言训练-求函数值 (C语言代码)浏览:976 |
C语言程序设计教程(第三版)课后习题9.4 (Java代码)浏览:1446 |
C语言程序设计教程(第三版)课后习题9.8 (Java代码)浏览:1674 |
【绝对值排序】 (C语言代码)浏览:832 |
字符串的输入输出处理 (C语言代码)浏览:1019 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:631 |
简单的a+b (C语言代码)浏览:385 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:1267 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:821 |