程式設計之美 2 4 1的數目

2021-09-06 18:47:38 字數 548 閱讀 3628

這道題其實是做過了的,在中

但是再次做還是相當的糟糕。又看了一遍答案。

關鍵:要求每一位上1的個數, 其任意一位上1的個數受當前位、高位、低位三方面的影響。 注意這三位怎麼求,注意資料型別。注意迴圈條件。

#include long

long sum1s(unsigned long

long

n) ifactor *= 10

; }

return

icount;

}int

main()

擴充套件問題,如果數字不是10進製的如何:

很簡單,把所有用到10的地方都換成需要的進製數就可以了。

long

long sum1sdifferentfactor(unsigned long

long n, unsigned char

factor)

ifactor *=factor;

}return

icount;

}

程式設計之美2 4 1的數目

總體思路 先求個位上出現的1的個數,再找十位再找百位。先看個位找找規律 5 05 1 1 15 2 1,11 25 3 1,11,21 35 4 1,11,21,31 325 33 1,11,21,31,41,301,311,321 結論 個位上的1的數目s n 10 1 再看十位,找找規律 25 ...

程式設計之美 2 4 「1的數目」

擴充套件問題 二進位制數n,從1開始,到n的所有二進位制數,然後數下其中出現的所有 1 的個數。例如 f 1 1 f 10 2 因為01,10共有2個1 f 11 100 因為01,10,11共有4個1 思路 以10110為例,考慮最高位為0時共有幾個1,因為後面4位中1和0出現的概率是相等的,也即...

程式設計之美 2 4 1的數目

package code.beauty.fungame public class countone private static int count1inaint int n return num private static void count1inallint int n system.out...