★題目97 (回文數(shù)問題)
下列程序的功能是:尋找并輸出11至999之間的數(shù)m,它滿足m,m2和m3均為回文數(shù)。所謂回文數(shù)是指其各位數(shù)字左右對稱的整數(shù),例如121,676,94249等。滿足上述條件的數(shù)如m=11,m2=121,m3=1331皆為回文數(shù)。請編制函數(shù)int svalue(long m)實現(xiàn)此功能,如果是回文數(shù),則函數(shù)返回1,反之則返回0。最后把結(jié)果輸出到文件out.dat中。
int jsValue(long n)
{int i,strl,half;
char xy[20];
ltoa(n,xy,10); /*注意這里不能使用itoa()函數(shù),因為n是long 型的*/
strl=strlen(xy);
half=strl/2;
for(i=0;i
if(xy[i]!=xy[--strl]) break;
if(i>=half) return 1;
else return 0;
}
或者下面的解法:
int jsValue(long n)
{long int s=0,k;
k=n;
while(k)
{ s=s*10+k%10;
k/=10;
}
if(s==n) return 1;
if(s!=n) return 0;
}
輸出結(jié)果為:
m= 11,m*m= 121,m*m*m= 1331
m= 101,m*m= 10201,m*m*m= 1030301
m= 111,m*m= 12321,m*m*m= 1367631
*************************************************************************
★題目98(出圈題)
(本題采用實際上機題,05年9月和04年9月實際上機題與下面相同)
設(shè)有n個人圍坐一圈并按順時針方向從1到n編號,從第s個人開始進行1到m的報數(shù), 報數(shù)到第m個人, 此人出圈, 再從他的下一個人重新開始1到m的報數(shù),如此進行下去直到所有的人都出圈為止�,F(xiàn)要求按出圈次序,給出這n個人的順序表p。請考生編制函數(shù)Josegh()實現(xiàn)此功能并調(diào)用函數(shù)WriteDat()把編號按照出圈的順序輸出到OUT.DAT文件中。
注意:第1個出圈的編號存放在p[0]中,第2個出圈的編號存放在p[1]中,直至第n個出圈的編號存放在p[n-1]中。
設(shè) n = 100, s = 1, m = 10進行編程。
void Josegh(void)
{ int i,j,s1,w,q[100];
for(i=0;i
s1=s;
for(i=1; i<=n; i++) p[i-1]=i;
for(i=n; i>=2; i--)
{ s1=(s1+m-1)%i;
if(s1==0) s1=i;
w=p[s1-1];
for(j=s1; j
p[i-1]=w;
}
for(i=0,j=n-1;i
for(i=0;i
p[i]=q[i];
}
☆題目99(SIX/NINE問題)
下列程序prog1.c的功能是:計算出自然數(shù)SIX和NINE,它們滿足的條件是SIX+SIX+SIX=NINE+NINE的個數(shù)cnt以及滿足此條件所有的SIX與NINE的和SUM。請編寫函數(shù)countValue()實現(xiàn)程序的要求,最后調(diào)用函數(shù)writeDat()把結(jié)果cnt和sum,輸出到文件OUT15.DAT中。
其中的S,I,X,N,E各代表一個十進制數(shù)字。
部分源程序存在文件prog1.c中。
請勿改動主函數(shù)main()和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。
#include
int cnt,sum;
void countValue()
{ int s,i,x,n,e,six,nine;
for(s=1;s<10;s++)
for(i=0;i<10;i++)
for(x=0;x<10;x++)
for(n=1;n<10;n++)
for(e=0;e<10;e++)
{ six=s*100+i*10+x;
nine=n*1000+i*100+n*10+e;
if(3*six==2*nine)
{ cnt++;sum+=six+nine;}
}
}
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |