宅男噜噜噜666在线观看,国产1区二区三区,国产日韩欧美大片,国产超碰97,国产自产视频,99久久国产综合精品色伊,亚洲午夜高清

軟題庫 學(xué)習(xí)課程
當(dāng)前位置:信管網(wǎng) >> 在線考試中心 >> 試題查看
試題題型【分析簡答題】
試題內(nèi)容

閱讀以下說明和C程序,填充程序中的空缺,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
正整數(shù)n若是其平方數(shù)的尾部,則稱n為同構(gòu)數(shù)。例如,6是其平方數(shù)36的尾部,76是其平方數(shù)5776的尾部,6與76都是同構(gòu)數(shù)。下面的程序求解不超過10000的所有同構(gòu)數(shù)。
己知一位的同構(gòu)數(shù)有三個: 1,5,6,到此二位同構(gòu)數(shù)的個位數(shù)字只可能是1,5,6這三個數(shù)字。依此類推,更高位數(shù)同構(gòu)數(shù)的個位數(shù)字也只可能是1,5,6 這三個數(shù)字。
下面程序的處理思路是:對不超過10000的每一個整數(shù)a,判斷其個位數(shù)字,若為1、5或6,則將a 轉(zhuǎn)換為字符串a(chǎn)s,然后對a進(jìn)行平方運(yùn)算,并截取其尾部與as長度相等的若干字符形成字符串后與as比較,根據(jù)它們相等與否來斷定a是否為同構(gòu)數(shù)。
【C 程序】
#include
#include
#include
int  myitoa(int ,char  *);  /*將整數(shù)轉(zhuǎn)換為字符串*/
/* right取得指定字符串尾部長度為length的子串,返回所得子串的首字符指針*/
char  *right(char*,  int  length);

int main ()
{
int a ,t;  int  len;
char as[10] ,rs[20];

printf("[1 ,10000]內(nèi)的同構(gòu)數(shù): \r");
for(a=1;a<=10000;a++) {
t =       (1)     ;  /*取整數(shù)a的個位數(shù)字*/
if (t!=1&& t!=5 && t!=6)  continue;
len  =  myitoa(a ,as);  /*數(shù)a轉(zhuǎn)換為字符串,存入as */
myitoa(a*a, rs);  /*數(shù)a的平方轉(zhuǎn)換為字符串,存入rs */
/*比較字符串a(chǎn)s與rs末尾長度為len的子串是否相等*/
if (   strcmp (as ,    (2)   )==0   )  /*若相同則是同構(gòu)數(shù)并輸出*/
printf("%s的平方為%s\n" ,as,rs);
}
return 0;
}
int  myitoa(int num ,char *s)  /*將整數(shù)num轉(zhuǎn)換為字符串存入s */
{
int i ,n  =  0;
char ch;

/*從個位數(shù)開始,取num的每一位數(shù)字轉(zhuǎn)換成字符后放入s[] */
while  (num)   {
s[n++]  = (3)  + '0' ;
num = num/10;
}
s[n]='\0';
for(i=0;  i (4)    ; s[i] = s[n-i-1]; S [n-i-1] = ch;
}
return  n;  /*返回輸入?yún)?shù)num的位數(shù)*/
}
char *right(char *ms ,int  length)
/*取字符串ms尾部長度為length的子串,返回所得子串的首字符指針*/
{
int i;

for( ; *ms; ms++);                /*使ms到達(dá)原字符串的尾部*/
for(  i=0;  i return  ms;
}

查看答案

相關(guān)試題