从字面上看,我被问到这个问题“”Fibonacci序列是0,1,1,2,3,5,8,13 ......;前两个项是0和1,其后的每个项是前两个项的和 - 即Fib [n] = Fib [n - 1] + Fib [n - 2]。使用此信息,编写一个C ++程序,计算Fibonacci序列中的第n个数字,用户以交互方式在程序中输入n。例如,如果n = 6,程序应显示值8.“
感谢上一个问题的答案,我已将其放入我的完整代码中。我确实有一个循环,这意味着用户可以选择是否继续该程序。它工作得更早,但现在没有任何反应。任何人都可以对此有所了解吗?谢谢
{int N;
char ans = 'C';
while (toupper(ans) == 'C')
{
cout<<"This program is designed to give the user any value of the Fibonacci Sequence that they desire, provided the number is a positive integer.";//Tell user what the program does
cout<<"\n\nThe formula of the Fibonacci Sequence is; Fib[N] = Fib[N – 1] + Fib[N – 2]\n\n"; //Declare the Formula for the User
cout<<"Enter a value for N, then press Enter:"; //Declare Value that the User wants to see
cin>>N;//Enter the Number
if (N>1) {
long u = 0, v = 1, t;
for(int Variable=2; Variable<=N; Variable++)
{
t = u + v;
u = v;
v = t;
} //Calculate the Answer
cout<<"\n\nThe "<<N<<"th Number of the Fibonacci Sequence is: "<<t; //Show the Answer
}
if (N<0) {
cout<<"\n\nThe value N must be a POSITIVE integer, i.e. N > 0"; //Confirm that N must be a positive integer. Loop.
}
if (N>100) {
cout<<"\n\nThe value for N must be less than 100, i.e. N < 100. N must be between 0 - 100.";//Confirm that N must be less than 100. Loop.
}
if (N==0) {
cout<<"\n\nFor your value of N, \nFib[0] = 0"; //Value will remain constant throughout, cannot be caculated through formula. Loop.
}
if (N==1) {
cout<<"\n\nFor your value of N. \nFib[1]=1";//Value will remain constant throughout, cannot be caculated through formula. Loop.
}
cout << "\n\nIf you want to select a new value for N, then click C then press Enter. If you want to quit, click P then press Enter: ";
cin >> ans;
}
return 0;
}
答案 0 :(得分:1)
所有你需要的是在cout
下面放两行。而且你不需要额外的{},但它不会造成伤害。
答案 1 :(得分:0)
这是你的主要循环:
for(int i=2; i<=N; i++)
{
t = u + v;
u = v;
v = t;
cout<<t<<"is your answer";
}
很明显,它会在循环中的每一次传递中打印出你的答案。
只需将打印件移到循环外部...完成所有计算后,您只需看一次打印:
for(int i=2; i<=N; i++)
{
t = u + v;
u = v;
v = t;
}
cout<<t<<"is your answer";
我在您的代码中看到的其他问题:
您声明了一个函数:
unsigned long long Fib(int N);
但它从未被定义或使用过。为什么这个声明在这里? (删除它)
你有一套冗余的大括号:
else {
{
unsigned long long u = 0, v = [....]
你不需要紧跟牙箍,然后再戴上牙套。