求助回文数程序出错
#include <stdio.h>#include <stdlib.h>
int main()
{
int a,b,j,sum,temp;
sum=0;
for(i=998001;i>=10000;i--) //从998001到10000依个判断是否为回文数
{
for(j=i;j;j/=10)
{
temp=j%10;
sum=sum*10+temp; //求这个数的倒数
}
if(sum==i) //若倒数与原数相等,则为回文数
{
for(a=100;a<=999;a++) //求两个三位数,并且这两个三位数相乘等于回文数
{
for(b=100;b<=999;b++)
{
if(a*b==sum)
{
printf("%d*%d=%d",a,b,sum);
goto END;
}
}
}
}
}
END:
return 0;
}
本意是打印两个三位数,并且这两个三位数相乘恰好等于回文数,就是小甲鱼第一阶段考核的最后一个题。
但是,程序一运行就结束了,我看代码好像没问题啊,求大佬们帮忙看看。 #include <stdio.h>
int main(void)
{
inti , n , t ;
scanf("%d" , & n) ;
for(t = n , i = 0 ; t ; t /= 10) i = i * 10 + t % 10 ;
if(i == n) printf("yes\n") ;
else printf("no\n") ;
}
编译、运行实况:
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
12345678
no
D:\00.Excise\C>x
123454321
yes
D:\00.Excise\C>x
1234554321
yes
D:\00.Excise\C> #include <stdio.h>
#include <stdbool.h>
bool isPalindrome(int num){
int i, t;
for(t = num, i = 0; t; t /= 10) i = i * 10 + t % 10;
return i == num;
}
int main(void){
for(int n = 998001; n > 10000; n--) if(isPalindrome(n)) printf("%d\n", n);
}
页:
[1]