给出费布拉切数列的两个连续数3,5,要求用户输入下一个数,并根据用户输入结果判断是否正确。如果回答正确,询问用户要不要猜下一个数列,在本题中一直使用同一个数列即3,5;如果回答错误,询问用户要不要再猜一次当前数列。
输入格式:
根据程序提示输入整数值或Y或N。
输出格式:
- 用户开始猜数据之前输出提示信息:The first 2 value is 3,5.What is the next value?
- 用户输入的值如果是错误的,则根据用户当前错误次数给出不同提示信息:
- 错误次数1:Nice guess but not quite it.
- 错误次数2:Wrong a second time.
- 错误次数3:This is harder than it looks.
- 错误次数超过3:It must be getting pretty frustrating by now!
- 然后询问用户要不要针对当前数列再猜一次:Do you want to guess again?
- 用户输入的值如果是正确的或用户不想继续当前数列的猜测则询问用户要不要尝试下一个数列,输出以下提示信息:Want to try another sequence?(Y/N)。
- 若用户输入为Y,则回到第1步,继续猜测新数列,本题中一直使用连续两个数为3,5的费布拉切数列。否则结束循环。
- 按以下格式输出总答对次数和总猜测次数,x,y为实际次数:num_of_rights:x num_of_tries:y
输入样例:
在这里给出一组输入。例如:
8
N
输出样例:
在这里给出相应的输出。例如:
The first 2 value is 3,5.What is the next value?
Want to try another sequence?(Y/N)
num_of_rights:1 num_of_tries:1
代码实现(C++)
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int a1=3,a2=5,i=0,num,sum_t = 0,sum_Y=0;
char ch,ch2;
bool go1=true,go2=true;
while(1)
{
if(i<1)
printf("The first 2 value is 3,5.What is the next value?\n");
i++;
if(i<=100&&i>=1)
cin >> num;
while(1)
{
if(num!=8&&i==1)
{
printf("Nice guess but not quite it.\n");
sum_t++;
//break;
}
if(num!=8&&i==2)
{
printf("Wrong a second time.\n");
sum_t++;
//break;
}
if(num!=8&&i==3)
{
printf("This is harder than it looks.\n");
sum_t++;
}
if(num!=8&&i==4)
{
sum_t++;
printf("It must be getting pretty frustrating by now!\n");
}
if(num!=8)
{
printf("Do you want to guess again?\n");
cin >> ch2;
if(ch2=='Y')
{
break;
}
}
if(num == 8||ch2=='N')
{
i=0;
if(num==8)
{
sum_Y++;
sum_t++;
}
printf("Want to try another sequence?(Y/N)\n");
cin >> ch;
if(ch == 'Y')
break;
else
{
printf("num_of_rights:%d num_of_tries:%d",sum_Y,sum_t);
exit(0);
}
}
}
}
return 0;
}