#include<stdio.h>
int main()
{
int n,n1,n2;
int i,i1;
int num1[10],num2[10];
int j=0,k=0;
for(n=1;n<=100;n++)
{
n1=n*n;
n2=n*n*n;
while(n1)
{
num1[j]=n1%10;//把平方的每一位数字存起来
j++;
n1=n1/10;
}
while(n2)
{
num2[k]=n2%10;//把立方的每一位数字存起来
k++;
n2=n2/10;
}
for(j=0;j<10;j++)
{
for(k=0;k<10;k++)
{
if(!num1[j]==num2[k])break;//如果平方和立方没有重复的数字,就输出n
printf("%d",n);//
}
}
}
return 0;
}
一个数字的平方和立方拥有0-9之间的10个数字,且不重复,求这个数字?我这个怎么错了?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Neal·Lee 2021-04-21 19:15关注
#include<stdio.h> int main() { int n,n1,n2; int i,i1; int num1[10],num2[10]; int j=0,k=0;p = 0; for(n=1;n<=100;n++) { j = k = p = 0; // 每次循环后j,k,p的值归零 n1=n*n; n2=n*n*n; while(n1) { num1[j]=n1%10;//把平方的每一位数字存起来 j++; n1=n1/10; } while(n2) { num2[k]=n2%10;//把立方的每一位数字存起来 k++; n2=n2/10; } if(j+k != 10) continue; // 两个数长度加起来都没有十位数那肯定凑不齐0~9,超过十位数了那肯定会有重复的 for(k = 0; j < 10; j++,k++) num1[j] = num2[k]; // 将num2合并到num1里面 for(k = 0; k < 10; k++) // 从num1中查找是否存在0~9 { for(j = 0;j < 10; j++) if(k == num1[j]) {p = 1;break;} // 若存在k,寻找是否存在下一个 else p = 0; if(p == 0) break; // 若p等于0,说明循环完num1都没找到k值,即0~9中有一位不存在,那就别找了下一步吧 } if(p == 0) continue; // 若p等于0,该数不符合要求,开始下一次循环 else { printf("符合要求得数为:%d",n); break; } } return 0; }
解决 无用评论 打赏 举报
悬赏问题
- ¥20 Keil uVision5创建project没反应
- ¥15 mmseqs内存报错
- ¥15 vika文档如何与obsidian同步
- ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
- ¥15 陆空双模式无人机飞控设置
- ¥15 sentaurus lithography
- ¥100 求抖音ck号 或者提ck教程
- ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)
- ¥20 web页面如何打开Outlook 365的全球离线通讯簿功能
- ¥15 io.jsonwebtoken.security.Keys