free性ⅴideo另类重口,欧美激情视频一区二区三区免费,国内精品国产三级国产av,国产激情久久久久久熟女老人av,欧美成人乱码一区二区三区

大學(xué)生新聞網(wǎng),大學(xué)生新聞發(fā)布平臺(tái)
大學(xué)生新聞網(wǎng)
大學(xué)生新聞大學(xué)生活校園文學(xué)大學(xué)生村官
社會(huì)實(shí)踐活動(dòng)社會(huì)實(shí)踐經(jīng)歷社會(huì)實(shí)踐報(bào)告社會(huì)實(shí)踐總結(jié)社會(huì)實(shí)踐心得
全國(guó)排名校友會(huì)版軟科排名分類排名本科排名一本排名二本排名專科排名學(xué)校地址
求職簡(jiǎn)歷職場(chǎng)法則面試技巧職場(chǎng)故事求職招聘大學(xué)生就業(yè)
英語(yǔ)學(xué)習(xí)計(jì)算機(jī)學(xué)習(xí)電氣工程機(jī)械工程經(jīng)濟(jì)管理建筑設(shè)計(jì)財(cái)務(wù)會(huì)計(jì)
申請(qǐng)書證明書檢討書自薦信演講稿心得體會(huì)調(diào)查報(bào)告讀后感求職信推薦信其它范文

C語(yǔ)言求自守?cái)?shù)

自守?cái)?shù)是指一個(gè)數(shù)的平方的尾數(shù)等于該數(shù)自身的自然數(shù)。例如:

52 = 25 252 = 625 762 = 5776 93762 = 87909376

求100000以內(nèi)的自守?cái)?shù)。
問題分析
根據(jù)自守?cái)?shù)的定義,求解本題的關(guān)鍵是知道當(dāng)前所求自然數(shù)的位數(shù),以及該數(shù)平方的尾數(shù)與被乘數(shù)、乘數(shù)之間的關(guān)系。
算法設(shè)計(jì)
若采用“求出一個(gè)數(shù)的平方后再截取最后相應(yīng)位數(shù)”的方法顯然是不可取的,因?yàn)橛?jì)算機(jī)無(wú)法表示過大的整數(shù)。

分析手工方式下整數(shù)平方(乘法)的計(jì)算過程,以376為例:




本問題所關(guān)心的是積的最后三位。分析產(chǎn)生積的后三位的過程可以看出,在每一次的部分積中,并不是它的每一位都會(huì)對(duì)積的后三位產(chǎn)生影響?偨Y(jié)規(guī)律可以得到:在三位數(shù)乘法中,對(duì)積的后三位產(chǎn)生影響的部分積分別為:

第一個(gè)部分積中:被乘數(shù)最后三位×乘數(shù)的倒數(shù)第一位。
第二個(gè)部分積中:被乘數(shù)最后二位×乘數(shù)的倒數(shù)第二位。
第三個(gè)部分積中:被乘數(shù)最后一位×乘數(shù)的倒數(shù)第三位。

將以上的部分積的后三位求和后,截取后三位就是三位數(shù)乘積的后三位,這樣的規(guī)律可以推廣到同樣問題的不同位數(shù)乘積中。
分離給定數(shù)中的最后幾位
從一個(gè)兩位數(shù)(存在變量n中)開始分析,分離最低位個(gè)位n%10;對(duì)于三位數(shù)n,分離最后兩位n%100;對(duì)于四位數(shù)n,分離最后三位n%1000;...,由此可見,若分離出最后x位,只需要用原數(shù)對(duì) 10x 求余。

從第3部分所舉例子可以看出,對(duì)于第二個(gè)部分積“2632”來說其實(shí)應(yīng)是“26320”, 因?yàn)閷?duì)于乘數(shù)中的倒數(shù)第二位“7”來說,因其在十位,對(duì)應(yīng)的權(quán)值為10,第二個(gè)部分積實(shí)質(zhì)上為:376X70=26320。故求部分積的程序段為:


int main ()
{
    //...
    while(k>0)
    {
        mul=( mul + ( number%(k*10) )*( number%b - nxuober%(b/10) ) )%a;
        /* (部分積+截取被乘數(shù)的后N位*截取乘數(shù)的第M位),%a再截取部分積*/
        k /= 10;  /*k為截取被乘數(shù)時(shí)的系數(shù)*/
        b *= 10;
    }
    //...
    return 0;
}
對(duì)于整個(gè)循環(huán)來說,變量k是由number的位數(shù)確定截取數(shù)字進(jìn)行乘法時(shí)的系數(shù)。第1次執(zhí)行循環(huán)體時(shí),被乘數(shù)的所有位數(shù)都影響到平方的尾數(shù),因此第1個(gè)部分積=被乘數(shù)*乘數(shù)的最后一位,將部分積累加到變量mul上,再對(duì)a取余截取相應(yīng)的尾數(shù)位數(shù);第2次執(zhí)行循環(huán)體,影響平方尾數(shù)的是被乘數(shù)中除了最高位之外的數(shù)(所以k先除以10再參加運(yùn)算),第2個(gè)部分積=被乘數(shù)*乘數(shù)的倒數(shù)第二位,( number%b - number%(b/l0) )用來求乘數(shù)中影響平方尾數(shù)的對(duì)應(yīng)位上的數(shù);第3次、第4次執(zhí)行循環(huán)體的過程同上。

程序流程圖:



下面是完整的代碼:

#include<stdio.h>
int main()
{
    long mul, number, k, a, b;
    printf("It exists following automorphic nmbers small than 100000:\n");
    for( number=0; number<100000; number++ )
    {
        for( mul=number, k=1; (mul/=10)>0; k*=10 );
        /*由number的位數(shù)確定截取數(shù)字進(jìn)行乘法時(shí)的系數(shù)k*/
        a = k * 10;  /*a為截取部分積時(shí)的系數(shù)*/
        mul = 0;  /*積的最后n位*/
        b = 10;  /*b為截取乘數(shù)相應(yīng)位時(shí)的系數(shù)*/
        while(k>0)
        {
            mul=( mul + ( number%(k*10) )*( number%b - number%(b/10) ) )%a;
            /*(部分積+截取被乘數(shù)的后N位*截取乘數(shù)的第M位),%a再截取部分積*/
            k /= 10;  /*k為截取被乘數(shù)時(shí)的系數(shù)*/
            b *= 10;
        }
        if(number == mul)  /*判定若為自守?cái)?shù)則輸出*/
            printf("%ld   ", number);
    }
    printf("\n");
    
    return 0;
}</stdio.h>
運(yùn)行結(jié)果:
It exists following automorphic nmbers small than 100000:
0 1 5 6 25 76 376 625 9376 90625
    作者:大學(xué)生新聞網(wǎng)    來源:大學(xué)生新聞網(wǎng)
    發(fā)布時(shí)間:2025-03-11    閱讀:
    掃一掃 分享悅讀
  • C語(yǔ)言水仙花數(shù)
  • 輸出所有的“水仙花數(shù)”,所謂的“水仙花數(shù)”是指一個(gè)三位數(shù)其各位數(shù)字的立方和等于該數(shù)本身,例如153是“水仙花數(shù)”,因?yàn)椋?53 = 13
  • 03-11 關(guān)注:0
  • C語(yǔ)言求自守?cái)?shù)
  • 自守?cái)?shù)是指一個(gè)數(shù)的平方的尾數(shù)等于該數(shù)自身的自然數(shù)。
  • 03-11 關(guān)注:0
  • C語(yǔ)言求親密數(shù)
  • C語(yǔ)言求親密數(shù)
  • 如果整數(shù)A的全部因子(包括1,不包括A本身)之和等于B;且整數(shù)B的全部因子(包括1,不包括B本身)之和等于A
  • 03-11 關(guān)注:0
  • C語(yǔ)言求完數(shù)(完全數(shù))
  • C語(yǔ)言求完數(shù)(完全數(shù))
  • 如果一個(gè)數(shù)等于它的因子之和,則稱該數(shù)為“完數(shù)”(或“完全數(shù)”)。例如,6的因子為1、2、3,而 6=1+2+3,因此6是“完數(shù)”。
  • 03-11 關(guān)注:1
  • C語(yǔ)言輸出菱形(詳解版)