有一類數叫Self-Numbers,任取一個正整數n,界說f(n)為加上它每一位數字的和,例如:f(75)=75+7+5=87,以肆意一個整數n為起點可以按照此方式機關出無限遞增的序列:n,f(n),f(f(n)),f(f(f(n)))……。若是從33起頭,下一個數就是33+3+3=39,接著是39+3+9=51,然后是51+5+1=57,可以發生如許一個序列:33,39,51,57,69,84,96,111,114,120,123,129,141……,我們將數字n稱為f(n)的發生器。在上例中,33是39的發生器,39是51的發生器,51是57的發生器。一個沒有發生器的數稱作Self-Number,例如100以內前13個Self-Number是1,3,5,7,9,20,31,42,53,64,75,86,97。將第i個Self-Number暗示為s[i],就形當作一個序列s[1]=1,s[2]=3,s[3]=5……
輸入時先輸入2個整數,暗示發生器的數值規模,規模在10000以內,以及要輸出的Self-Number個數。
然后,輸入要輸出的每個Self-Number數的序號值。
起首,界說一個常量,用來節制發生器的數值規模。
界說各整型變量,節制法式的運行。
接著,界說兩個整型數組,保留各發生器所得的值,以及所得的Self-Number數。
給數組sum初始化,初始值為0。
接著,輸入發生器n的規模,以及所輸出的Self-Number的個數。
界說整型數組u,存入要輸出的Self-Number數的序號。
用for輪回,計較各發生器n所得的f(n)值,保留在數組sum中。
用while輪回,節制獲得發生器n的每一位數值,并實現累加。
用兩重for輪回,實現判定n以內的每個數是否為Self-Number,若是不是Self-Number數,則f的值為1。
若是一個數是Self-Number數,則將它保留到數組s中。
然后,輸出整數規模內Self-Number數的個數。
最后,輸出要求輸出的各Self-Number數。
運行法式,輸入整數規模和要輸出的Self-Number個數,以及各Self-Number數序號,電腦就會輸出響應的Self-Number數。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!