c语言输出回文数
1. c语言编程,输出三位数中所有的回文数,并计算出共有多少个
//3位数的回文数只需判断第一位(即百位)和第三位(即个位)是否相等,相等则为回文数
//不定位数的回文数用数组的方式更加方便,如判断10---99999999中的回文数
#include<stdio.h>
#include<stdlib.h>
intmain()
{
intn=100;
intcount=0;//计数
for(n;n<=999;n++)
{
inta,c;//a代表该3位数的第一位,c代表第三位
a=n/100;//求得第一位(百位)
c=n%10;//求得第三位(个位)
if(a==c)
{
printf("%d",n);
count++;
}
}
printf(" 共有%d个",count);
return0;
}
2. c语言求打印100000以内的所有回文数
/**
**程序算法思路:判断一个数是否为回文数,可以用一个函数模块来实现,然后用for循环对100000以内的数逐个进行判断并输出回文数。
回文数:判断一个数是不是回文数的方法,回文数就是原数与其倒置后的数相等。
*/
#include<stdio.h>
#defineN100000//定义符号常量
//判断是否为回文数的函数
intisHuiwenNumber(intn)
{
intsum,tmp;
tmp=n;
sum=0;
while(n)//从低位到高位分解n的每位的数字,然后依次相加
{
sum=sum*10+n%10;
n/=10;
}
if(tmp==sum)//如果重新每位求和的值等于原值,则该数为完数,返回1,否则返回0
return1;
else
return0;
}
intmain()
{
inti,count;
for(i=0,count=0;i<N;i++)
{
if(isHuiwenNumber(i))//调用函数,如果条件为真,执行if语句体
{
printf("%-6d",i);//输出回文数
count++;
if(count%10==0)//每行输出10个后便换行
printf(" ");
}
}
printf(" ");
return0;
}
由于运行结果内容太多,故部分运行结果截图如下:
3. c语言求回文数
任取一个十进制整数,用下面的方法可以求出一个回文数:
把这个数字的各个位,颠倒前后位置,形成一个新数,再和原数相加,得到的和,就可能是一个回文数。
如果不是回文数,就再重复上述的步骤,则最终可得到回文数。
4. 请用c语言编写程序输出100~999之间的所有回文数。
对于三位数来说,只要百位和个位相同就是回文数,根据此思路,写程序如下:
#include<stdio.h>
int main()
{
for(int i=100;i<1000;i++)
{
if(i/100==i%10)
printf("%d ",i);
}
}
希望接纳。^_^o~ 努力!
5. 如何用c语言找出1~999中的所有回文数
依照数学定义,可以得知1-999中的回文数包括三类:
1 一位数。只有一位,每个都是回文数。
2 两位数。个位和十位相同的两位数是回文数,即形式为aa的两位数,a值为1-9。
3 三位数。个位和百位相同的三位数都是回文数,即形式为aba的三位数,a值为1-9,b值为0-9。
综合以上规律,可以写出以下程序:
#include<stdio.h>
intmain()
{
inti,j;
for(i=1;i<10;i++)
{
printf("%d,",i);//一位数
printf("%d%d,",i,i);//两位数
for(j=0;j<10;j++)
printf("%d%d%d,",i,j,i);//三位数
printf(" ");//为方便阅读结果,加一个换行。
}
return0;
}
该函数输出为:
6. C语言求回文数
#include <stdio.h>
int func(int n)
{
int t;
for(t=0;n;n/=10)
t=t*10+n%10;
return t;
}
int main()
{
int i;
for(i=200;i<=3000;++i)
if(func(i)==i)
printf("%d ",i);
return 0;
}
7. C语言求回文数
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
inti,len,flag,cnt=1,num,numrev,addnum;
charstr[20]={0},strRev[20]={0},hui[20]={0};
gets(str);//输入数字以字符串方式接收
num=atoi(str);//转为数字
strcpy(strRev,strrev(str));//将接收的字符串逆序
numrev=atoi(strRev);//转换成逆序的数字
while(1)
{
addnum=num+numrev;//两个数字相加
printf("STEP%d:%d+%d=%d ",cnt,num,numrev,addnum);//输出
itoa(addnum,hui,10);//将相加后的数字转为字符串
len=strlen(hui);//求长度
flag=0;//标识是否是回文
for(i=0;i<len;i++)//判断是否回文
{
if(hui[i]!=hui[len-i-1])
{
flag=1;//如果不是回文继续
break;
}
}
if(!flag)//根据上面标识符判断是否回文
{
printf("%d%d ",cnt,addnum);//是户
break;
}elseif(cnt++>=30)//判断是否大于等于30次
{
printf("0 ");
break;
}
num=addnum;//将和作为下次运算的第一个数字
strcpy(strRev,strrev(itoa(num,str,10)));//根据第一个数逆序出第二个数
numrev=atoi(strRev);//字符串转数字
}
}
8. c语言,输出所有的四位回文数,如1221'等
int main()
{
int x,y;
for(int i=10;i<100;++i)
{
x=i%10;
y=i/10;
printf("%d%d%d",i,x,y);
}
}