#includestdio.h
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、薩爾圖網(wǎng)站維護(hù)、網(wǎng)站推廣。
#includestring.h
#define?MAX?100???//預(yù)定義數(shù)組長度
int?reverse(char?a[])//判斷是否回文,數(shù)字也當(dāng)字符處理
{
int?n=strlen(a);
int?i;
for(i=0;in;i++)
{
if(a[i]!=a[n-i-1])
return?0;??//從首尾開始比較,有任一不相等,不是回文,返回0
if(i==n-i-1)?//全相等,是回文。返回1
return?1;
}
}
int?main(){
char?a[MAX];
while(scanf("%s",a)!=EOF)//接受輸入?CTRL+Z結(jié)束輸入
{
if(reverse(a))
printf("YES\n");
else
printf("NO\n");
}
return?0;
}
回文數(shù)"回文數(shù)"是一種數(shù)字.如:98789, 這個數(shù)字正讀是98789,倒讀也是98789,正讀倒讀一樣,所以這個數(shù)字
就是回文數(shù).
任意某一個數(shù)通過以下方式相加也可得到
如:29+92=121 還有 194+491=586,586+685=1271,1271+1721=2992
不過很多數(shù)還沒有發(fā)現(xiàn)此類特征(比如196,下面會講到)
另外個別平方數(shù)是回文數(shù)
1的平方=1
11的平方=121
111的平方=12321
1111的平方=1234321
。
。
。
。
依次類推
3×51=153
6×21=126
4307×62=267034
9×7×533=33579
上面這些算式,等號左邊是兩個(或三個)因數(shù)相乘,右邊是它們的乘積。如果把每個算式中的“×”和“=”去掉,那么,它們都變成回文數(shù),所以,我們不妨把這些算式叫做“回文算式”。還有一些回文算式,等號兩邊各有兩個因數(shù)。請看:
12×42=24×21
34×86=68×43
102×402=204×201
1012×4202=2024×2101
不知你是否注意到,如果分別把上面的回文算式等號兩邊的因數(shù)交換位置,得到的仍是一個回文算式,比如:分別把“12×42=24×21”等號兩邊的因數(shù)交換位置,得到算式是:
42×12=21×24
這仍是一個回文算式。
還有更奇妙的回文算式,請看:
12×231=132×21(積是2772)
12×4032=2304×21(積是48384)
這種回文算式,連乘積都是回文數(shù)。
四位的回文數(shù)有一個特點(diǎn),就是它決不會是一個質(zhì)數(shù)。設(shè)它為abba,那它等于a*1000+b*100+b*10+a,1001a+101b。能被11整除。
六位的也一樣,也能被11整除
還有,人們借助電子計算機(jī)發(fā)現(xiàn),在完全平方數(shù)、完全立方數(shù)中的回文數(shù),其比例要比一般自然數(shù)中回文數(shù)所占的比例大得多。例如11^2=121,22^2=484,7^3=343,11^3=1331,11^4=14641……都是回文數(shù)。
人們迄今未能找到五次方,以及更高次冪的回文數(shù)。于是數(shù)學(xué)家們猜想:不存在nk(k≥5;n、k均是自然數(shù))形式的回文數(shù)。
在電子計算器的實(shí)踐中,還發(fā)現(xiàn)了一樁趣事:任何一個自然數(shù)與它的倒序數(shù)相加,所得的和再與和的倒序數(shù)相加,……如此反復(fù)進(jìn)行下去,經(jīng)過有限次步驟后,最后必定能得到一個回文數(shù)。
這也僅僅是個猜想,因?yàn)橛行?shù)并不“馴服”。比如說196這個數(shù),按照上述變換規(guī)則重復(fù)了數(shù)十萬次,仍未得到回文數(shù)。但是人們既不能肯定運(yùn)算下去永遠(yuǎn)得不到回文數(shù),也不知道需要再運(yùn)算多少步才能最終得到回文數(shù)。
任取一個十進(jìn)制整數(shù),用下面的方法可以求出一個回文數(shù):
把這個數(shù)字的各個位,顛倒前后位置,形成一個新數(shù),再和原數(shù)相加,得到的和,就可能是一個回文數(shù)。
如果不是回文數(shù),就再重復(fù)上述的步驟,則最終可得到回文數(shù)。
C語言是一種計算機(jī)程序設(shè)計語言。
它既有高級語言的特點(diǎn),又具有匯編語言的特點(diǎn)。
它可以作為系統(tǒng)設(shè)計語言,編寫工作系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計語言,編寫不依賴計算機(jī)硬件的應(yīng)用程序。
因此,它的應(yīng)用范圍廣泛。
C是一種計算機(jī)編程語言。就是說可以用C編寫指令清單交給計算機(jī)去執(zhí)行。
C是當(dāng)前正在使用的成千上萬種編程語言之一。它已經(jīng)有幾十年的歷史了。
因?yàn)樗δ軓?qiáng)大而且效率很高,所以受到了程序員們廣泛的歡迎。
C還是一種容易學(xué)習(xí)的語言,和其他一些語言相比,C的風(fēng)格稍有點(diǎn)古怪,但您會很快適應(yīng)的。
#includestdio.h
#includestring.h
#includestdlib.h
int?svalue(long);
void?main()
{
long?i,j,k;
for(i=11;i1000;i++)
{
j=i*i;
k=j*i;
if(svalue(i)svalue(j)svalue(k))
printf("%ld\t%ld\t%ld\n",i,j,k);
else
continue;
}
}
int?svalue(long?m)
{
int?a[9]?=?{0,0,0,0,0,0,0,0,0};??????//1000的立方為1000000000
int?i?=?0,j?=?0;
a[0]?=?m?/?100000000;
a[1]?=?m?%?100000000?/?10000000;
a[2]?=?m?%?10000000?/?1000000;
a[3]?=?m?%?1000000?/?100000;
a[4]?=?m?%?100000?/?10000;
a[5]?=?m?%?10000?/?1000;
a[6]?=?m?%?1000?/?100;
a[7]?=?m?%?100?/?10;
a[8]?=?m?%?10;
for(i=0;i9;i++)
{
if(0?==?a[i])
{
j++;
}
else?if(0?!=?a[i])
{
break;
}
}
for(i=j;i9;i++)
{
if(a[i]?!=?a[8+j-i])
{
return?0;
}
}
return?1;
}
//ok了。。
#includestdio.h
#includestring.h
//判斷是否是回文,處理相加,判斷是不是還找不到。
bool f(char str[],int n)
{
int i,j;
char ans[100];
int e,d;
for(i=0;str[i]!='\0';i++);//i為長度
for(j=0;ji;j++)
ans[j]=str[i-1-j];//逆序賦值給ans
ans[j]='\0';
if(strcmp(ans,str)==0) return false;//找到了,返回。
//printf("%s %s\n",str,ans);
//高精運(yùn)算
e=0;
for(j=0;ji;j++)
{
d=str[j]-'0'+ans[j]-'0'+e;
e=d/n;
str[j]=d%n+'0';
}
if(e!=0) {str[j]=e+'0';j++;str[j]='\0';}
return true;
}
int main()
{
int step;
char ans[100];
char m[100];//只能用高精度算
int n;
while(scanf("%d%s",n,m)!=EOF)
{
step=0;
strcpy(ans,m);
while(f(ans,n))
{
step++;
if(step30) break;
}
if(step30) printf("impossible\n");
else printf("STEP=%d\n",step);
}
return 0;
}