回文数问题
回文数的判断
下面展示一些 内联代码片。
数学方法解决
// An highlighted block
#include<string.h>
int main(){
int x,s;//11233
int y=0;
scanf("%d\n",&x);
s=x;
while(s>0){//////////////
y=y*10+s%10;
s=s/10;
}
if(y==x){.
printf("是回文数\n");
}
else{
printf("no!why");
}
return 0;
}
下面展示一些 内联代码片。
// A code block
对应问题:
题目描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入
输入一行,包含一个正整数n。
数据规模和约定
1<=n<=54。
// An highlighted block
#include<stdio.h>
int main(){
//首先限制位数
//其次判断回文数
int n,num,i;
scanf("%d\n",&n);
for(i=10000;i<999999;i++){
int y=0,sum=0;
num=i;
//将数字翻转过来
while(num>0){//例如:696 11233
sum+=num%10;
y= num%10+y*10;
num=num/10;
}
if(sum==n&&y==i){//1.判断各位上的和是否等于n。2.y==i判断是否为回文数
printf("%d\n",i);
}
}
return 0;
}
下面展示一些 内联代码片。
// A code block
字符串方法解决
// An highlighted block
#include<stdio.h>
#include<string.h>
int main(){
char arr[100];
scanf("%s\n",arr);
int i,j;
int flag=1;
int len=strlen(arr);
for(i=0,j=len-1;i<len,j>0;i++,j--){
if(arr[i] !=arr[j]){
flag=0;
break;
}
}
if(flag){
printf("yes");
}
}```
2473

被折叠的 条评论
为什么被折叠?



