zoukankan      html  css  js  c++  java
  • 计算2^4000内数字0到9的分布

    如题,用大数乘法很简单,但在别处看到一个用100000进制来计算的代码。如下:

     1 #include <vector>
     2 #include <stdio.h>
     3 int main()
     4 {
     5     std::vector<int> bigNumber(400);
     6     bigNumber[0] = 1;
     7     for (int i = 0; i < 4000; i++) {
     8         for (int j = 0; j < 400; j++) {
     9             bigNumber[j] *= 2;
    10         }
    11         for (int j = 0; j < 399; j++) {
    12             bigNumber[j + 1] += bigNumber[j] / 100000; // 100000进制 
    13             bigNumber[j] %= 100000;
    14         }
    15     }
    16     bool willOutput = false;
    17     int totalNum = 0;
    18     for (int j = 399; j >= 0; j--) {
    19         if (bigNumber[j] != 0 || willOutput) {
    20             totalNum += 5;
    21             printf(willOutput ? "%05d" : "%d", bigNumber[j]);
    22             willOutput = true;
    23         }
    24     }
    25     printf("
    %d
    ", totalNum);
    26     return 0;
    27 }
  • 相关阅读:
    DataFrame转矩阵Np-Array
    十月15
    十月14
    十月14
    十月12
    十月10
    2016-02-22 有无网络 2
    2016-02-22 有无网络的提示 1 h m
    2016-02-20 web view
    20160220 下拉刷新 上拉加载
  • 原文地址:https://www.cnblogs.com/clairvoyant/p/5628246.html
Copyright © 2011-2022 走看看