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);
}
}