1. 倍逆序式若一个整数n与其逆序数m(逆序数就是将整数的数字倒过来形成的数,例如2178的逆序数为8712)的位数同为d位,且m恰为n的整数k倍(k>1),称n*k=m为倍逆序式。【输入】请从标准输入设备输入位数值d。【输出】从标准输出设备输出所有d位倍逆序式。 【样例输入】4【样例输出】1089*9=98012178*4=8712 代码如下:#include<stdio.h>
#include<math.h>
int main()
{
int i,n,t,sum,m,x,y;
scanf("%d",&n);
x=pow(10,n-1);
y=pow(10,n);
for(i=x;i<y;i++){
m=i;
sum=0;
while(i!=0){
t=i%10;
sum=sum*10+t;
i=i/10;
}
if(sum%m==0)
printf("%d*%d=%d\n",m,sum/m,sum);
}
return 0;
}程序不能出结果 出的结果是一个无限循环高手帮帮忙!
一个关于c++程序的问题 为什么不能出结果?
答案:4 悬赏:20
解决时间 2021-03-22 14:40
- 提问者网友:清羽墨安
- 2021-03-21 19:25
最佳答案
- 二级知识专家网友:甜野猫
- 2021-03-21 19:59
你的i被改了没有改回去
int main()
{
int i,n,t,sum,m,x,y;
scanf("%d",&n);
x=pow(10,n-1);
y=pow(10,n);
for(i=x;i<y;i++){
m=i;
sum=0;
while(i!=0){
t=i%10;
sum=sum*10+t;
i=i/10;
}
if(sum%m==0)
printf("%d*%d=%d\n",m,sum/m,sum);
i=m;//加了这个就好了
}
return 0;
}
int main()
{
int i,n,t,sum,m,x,y;
scanf("%d",&n);
x=pow(10,n-1);
y=pow(10,n);
for(i=x;i<y;i++){
m=i;
sum=0;
while(i!=0){
t=i%10;
sum=sum*10+t;
i=i/10;
}
if(sum%m==0)
printf("%d*%d=%d\n",m,sum/m,sum);
i=m;//加了这个就好了
}
return 0;
}
全部回答
- 1楼网友:心痛成瘾
- 2021-03-21 23:04
你的程序里面while循环改变了i的值,所以在for循环那里造成了无限循环改了之后的程序如下:#include<stdio.h>
#include<math.h>
int main()
{
int i,n,t,sum,m,x,y;
scanf("%d",&n);
x=(int)pow(10,n-1);
y=(int)pow(10,n);
for(i=x;i<y;i++){
m=i;
sum=0;
while(m!=0){
t=m%10;
sum=sum*10+t;
m/=10;
}
if(sum%i==0&&sum/i>1)
printf("%d*%d=%d\n",i,sum/i,sum);
}
return 0;
} 谢谢采纳哦~o(∩_∩)o ~~
- 2楼网友:安稳不如野
- 2021-03-21 22:15
#include<stdio.h>
#include<math.h>
int main()
{
int i,n,t,sum,m,x,y;
scanf("%d",&n);
x=pow(10,n-1);
y=pow(10,n);
for(i=x;i<y;i++){
m=i;
sum=0;
while(m!=0){
t=m%10;
sum=sum*10+t;
m/=10;
}
if(sum%i==0&&sum/i>1)
printf("%d*%d=%d\n",i,sum/i,sum);
}
return 0;
}
- 3楼网友:狙击你的心
- 2021-03-21 21:28
#include<stdio.h>
#include<math.h>
int main()
{
int i,n,t,sum,m,x,y;
scanf("%d",&n);
x=pow(10,n-1);
y=pow(10,n);
for(i=x;i<y;i++){
m=i;
sum=0;
while(m!=0){
t=m%10;
sum=sum*10+t;
m/=10;
}
if(sum%i==0&&sum/i>1)
printf("%d*%d=%d\n",i,sum/i,sum);
}
return 0;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯