2017-09-02 66 views
-4

我對C++很陌生,目前我正在設計一個計算Euklid算法的計算器。有沒有辦法在while循環中將數字添加到「緩衝區」?

無論如何,我需要幫助的是我如何可以將最終數字添加到每個循環的某種數組。

讓例如說我把數字1128和16然後我的程序將給出這個輸出

1128 % 16 = 70 + 8 
70 % 16 = 4 + 6 
4 % 16 = 0 + 4 

theese三行打印,一個在時間,對於每一個循環。我想要的是將最後的數字(8,6和4)添加到數組中。我將如何做到這一點?

+1

您是否在尋找['標準::矢量 ::的push_back()'](http://en.cppreference.com/w/cpp/container/vector)? – user0042

+2

你到目前爲止嘗試過什麼? – pmaxim98

+2

是的。標準庫中有很多類模板[容器](http://en.cppreference.com/w/cpp/container)。考慮到第一條評論。 – Ron

回答

1

使用Vector而不是數組,希望這有助於!

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

int main() 
{ 
    int a=1128,b=16,i; 
    vector<int>arr; 
    while(a>b) 
    { 
     cout<<a/b<<" "<<a%b<<endl; 
     arr.push_back(a%b); 
     a/=b; 
    } 
    cout<<a/b<<" "<<a%b<<endl; 
    arr.push_back(a%b);    // Case: When a<=b in Vector 
    for(i=0;i<arr.size();i++) 
     cout<<arr[i]<<" ";   // Array i.e 8 6 4 
    return 0; 
} 

Output: 
70 8 
4 6 
0 4 
8 6 4 // Array 
+1

首選[cppreference.com](http://en.cppreference.com/w/cpp/container/vector)到上述網站。更可靠的信息來源。 – Ron

+0

@ishpreet但gcd(1128,16)= 8 ...? – pmaxim98

+0

@ pmaxim98該程序不計算** Gcd **。再看看你會很快找到。提示:** b **在每次循環迭代中都不會改變。 – Ishpreet

相關問題