1. 編程求迴文數
填好了,自己看吧。
#include "string.h"
char *huiwei(char *str)
{ char *p1,*p2;
int i,t=0;
p1=str; p2=str+strlen(str)-1;
for(i=0;i<strlen(str)/2;i++)
if(*p1++!=*p2--)
{ t=1;break;}
if(t==0) return("yes!");
else return("no!");
}
main( )
{ char str[50];
printf("Input:"); scanf("%s",str);
printf("%s\n",huiwei(str));
}
2. C語言怎麼判斷一個數是否是迴文數
所謂迴文數,就是說一個數字從左邊讀和從右邊讀的結果是一模一樣的,比如12321。
以下是判斷一個數是否為迴文數的代碼:
3. 1-1000共有多少個會迴文數求演算法奧數
簡單的暴力演算法,從1遍歷到999,判斷是否是迴文,如果是則計數+1:
intcalc(intlow,inthigh)
{
inti,j,k,count=0;
charnum[16];
for(i=low;i<high;i++)
{
sprintf(num,"%d",i);
j=k=0;
while(num[++k]);--k;
while(j<k&&num[j]==num[k])
{
j++;k--;
}
if(j>=k)count++;
}
returncount;
}
或者用比較詭異的演算法:對小於10的數字,肯定都是迴文了, 有9個,然後這9個可以擴展兩位的迴文,比如1變為11, 2變為22; 然後兩位數共有從10到99個共90個數字,每個兩位數也可以擴展為迴文,即將原來的數字乘10加上原來的十位上的數字即可,比如10變為101, 21變為212,這樣有90個迴文數了, 所以一共有9+9+90=108個,這個演算法就用代碼寫的話就沒啥意思了哈。
4. c語言迴文數判定
除法和求余演算法判斷迴文數:把一個數的各個位上的數字獨立出來
打比方:123
個位上的數字3=123%10;
十位上的數字2=(123/10)%10···
不用數組的話,可以用鏈棧存儲結構,首先把輸入的數字通過除法和求余運算把一個數字的各個位拆分開來,再把拆開的一組數字的一半存入鏈棧,再出棧與剩餘的一半數字作比較。
5. 什麼是迴文數
「迴文」是指正讀反讀都能讀通的句子,它是古今中外都有的一種修辭方式和文字游戲,如「我為人人,人人為我」等。在數學中也有這樣一類數字有這樣的特徵,成為迴文數(palindrome number)。
設n是一任意自然數。若將n的各位數字反向排列所得自然數n1與n相等,則稱n為一迴文數。例如,若n=1234321,則稱n為一迴文數;但若n=1234567,則n不是迴文數。
(5)迴文數演算法擴展閱讀
迴文數演算法:隨意找一個十進制的數,把它倒過來成另一個數,再把這兩個數相加,得一個和數,這是第一步;然後把這個和數倒過來,與原來的和數相加,又得到一個新的和數,這是第二步。
照此方法,一步步接續往下算,直到出現一個「迴文數」為n。例如:28+82=110,110+011=121,兩步就得出了一個「迴文數」。如果接著算下去,還會得到更多的「迴文數」。這個過程稱為「196演算法」。
6. c++編程 求迴文數
#include<iostream>
using namespace std;
bool IsHwu2(int n)
{
int a, b = 0;
int k = n;
bool ishw=false;
while(k)
{
a = k % 10;
b = b * 10 + a;
k /= 10;
}
if(n == b)
ishw=true;
return ishw;
}
void main()
{
const NO1=100;
const NO2=1000;
for (int a=NO1;a<NO2;a++)
{
if(IsHwu2(a))
cout<<a<<" ";
}
cout<<endl;
}
運行看看,應該是你想要的輸出 ,你的錯誤上面大家都說了 是m沒有賦值
7. 設計一個演算法,輸出所有3位數的迴文數(如101、323、919等),並畫出演算法框圖…求高手!
1) 令b=0
2) 令b增加1
3) 如果b=10,則結束演算法
4) 令a=0
5) 輸出(b*100+a*10+b)
6) 令a增加1
7) 如果a=10,則回到2),否則回到5)
自己把它轉化成框圖吧.
8. 什麼是迴文數演算法
迴文數演算法 c語言和java語言實現迴文數演算法的區別
問題:
將所有迴文數從小到大排列,求第N個迴文數。
一個正數如果順著和反過來都是一樣的(如13431,反過來也是...
9. C語言迴文演算法
我前幾天剛好做過類似題,這里才3位數比較簡單,已經調試並運行過了,絕對准確!
main()
{
int
n,i,a[5];
for(i=10;i<=200;i++)/*迴文數至少為兩位數,即大於9*/
{
if(i/100>=1)/*三位數得情況*/
{
a[0]=i/100;/*百位數*/
a[1]=i%100/10;
a[2]=i%10;
if(a[0]==a[2])printf("\n%d",i);
}
else
/*兩位數得情況*/
{
a[0]=i/10;
a[1]=i%10;
if(a[0]==a[1])printf("\n%d",i);
}
}
}
10. 設計演算法判斷一個數是不是迴文數
var
s:string;
i:integer;
begin
readln(s);{記錄該數}
for i:=1 to length(s) div 2 do (迴文數兩兩對應,所以只要搜索一半)
if s[i]=s[length(s)+1-i] then continue {如果是,就讓它繼續搜下去}
else begin dec(i); break; end;{如果不是,就將指針i指向前面,並且跳出循環}
if i=length(s) then writeln("yes")
else writeln("no");{表明搜索完畢沒有受到阻力,所以是迴文數}
end.