簡體   English   中英

如何檢查程序是否經過數據類型存儲?

[英]How to check whether the program goes over the data type storage?

我需要找出如何控制程序的流程,以便在用戶插入大量數字時程序不會崩潰。 該程序的目標是通過用戶輸入來計算斐波那契數列。

#include <iostream>
using namespace std;

int main() {

int n;   
cout << " Please enter number of fibonacci number series you wanna see  ";   
cin >> n;     
int num1=0;
int num2=1;
cout << num1 << " " << num2 << " ";

if(num1+num2<=32756)

for (int i=0; i<=n-1; ++i)
{
    int num2Temp=num2;
    cout << num1+num2 << " ";
    num2=num1+num2;
    num1=num2Temp;

}
else 
    cout << " TOO BIG " << endl;

return 0;
}

我確實計算了斐波那契數列,但是,它沒有遵循if語句,並在超過32756時停止了程序。我理解為什么會這樣做,因為num1 + num2沒有更新,所以程序理解為0 + 1,沒有每個循環的更新版本。 但是我沒有解決該程序的具體想法。

在循環開始之前,您只測試一次總和。

您可能想在循環內進行測試,如果總和超過32756 ,則退出循環:

for (int i = 0; i < n; i++)
{
    if (num1 + num2 <= 32756)
    {
        int num2Temp = num2;
        num2 += num1;
        num1 = num2Temp;
        cout << num2 << " ";
    }
    else
    { 
        cout << " TOO BIG " << endl;
        break;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM