-1

私は答えをチェックしました、そしてそれは私の答えからそれほど外れていません、しかしそれはまだエラーです。誰かが私のコーディングをチェックして、1319の値を取得する原因となった間違いを確認できますか?

#include <iostream>
#include <vector>
using namespace std;

int main()
{
int k = 0;
int o = 0;
vector<int> n(1,0);
n[0] = 1;
while (k < 1001)
{
    for (int l = 0; l < n.size(); l++)
        n[l] = n[l] * 2;
    for (int l = 0; l < n.size(); l++)
    {
        if (n[l] >= 1000000)
        {
            int m;
            if (l == n.size() - 1)
                n.resize(n.size() + 1);
            m = n[l] / 1000000;
            n[l] = n[l] % 1000000;
            n[l+1] = n[l+1] + m;
        }
    }
    k++;
}
for (int l = 0; l < n.size(); l++)
    o = o + int (n[l]/1000000) + int ((n[l] % 1000000) / 100000) + int ((n[l] % 100000) / 10000) + int ((n[l] % 10000) / 1000) + int ((n[l] % 1000) / 100) + int ((n[l] % 100) / 10) + n[l] % 10;
cout << o;
cin >> k;
return 0;

}

4

2 に答える 2

1

成功する

while (k < 1000)

アウターループ状態で。

ループでは、ループに入るときの値を持つベクトル内のwhile表現から始めます。つまり、実際にはコンピューティングであり、ではありません。2^kk2^10012^1000

于 2013-03-26T20:42:45.800 に答える
0

これをC++で解決する際の問題は、データ型の制限です。「int」は2^1000を計算するのに十分ではありません。私はこれのプロトタイプを解きました。つまり、2 ^4の数字の合計です。2^4の累乗は16で、数字の合計はid7です。コードがuをガイドすることを願っています。

         #include<iostream.h>
         #include<conio.h>

         void main()
             {
                 int count=1;

           int power=1;
                 int sum=0;
   while(count<=4)
   {   count++;
   power=power*2;

    }
   cout<<"The power is"<<power<<"\t";

    while(power!=0)
     {
           int digit=power%10;
        sum=sum+digit;
        power=power/10;

     }


     cout<<"The sum of digits is"<<sum;
     getch();
    }
于 2013-04-02T08:25:45.377 に答える