[英]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.