上海市计算机学会竞赛平台八月月赛丙组《促销骰子》题解

题目描述

商店正在做促销活动。每个顾客在付款的时候,都有机会掷一次骰子,如果掷出6,可以获得优惠,并且可以继续掷骰子,直到出现不是6的情况为止。获奖规则如下:

  1. 如果掷出三个6,优惠1000元;
  2. 否则,如果连续掷出两个6,优惠100 元;
  3. 否则,如果掷出一个6,优惠10 元。

给定小爱掷出的骰子点数的情况,请输出她可以获得的优惠金额。

输入格式

输入由若干个整数(最多三个)构成:

  1. 若输入有三个数字,则保证前两个数字为6;
  2. 若输入有两个数字,则保证第一个数字为6,后一个数字不为6;
  3. 若输入只有一个数字,则保证该数字不为6。

输出格式

单个整数:表示获得的优惠金额。

数据范围

保证输入的每个数字在1到6之间。

样例数据

样例1

输入

6 3

输出

10

样例2

输入

6 6 6

输出

1000

思路

因为如果不是6就结束了,所以用while读入,如果不是6就break,用sum统计有多少个6,输出pow(10,sum);

代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int sum=0,a;//记录6的个数,注意清零
	while(cin>>a)//循环输入
	{
		if(a!=6)
		{
			break;//如果不是6就结束
		}
		sum++;//6的个数+1
		if(sum==3)
		{
			break;//如果是三个了也结束 
		}
	}
	if(sum==0)//如果没扔出6就没有优惠 
	{
		cout<<0<<endl;
		return 0;//结束程序 
	}
	cout<<pow(10,sum)<<endl;//优惠的钱数 
	return 0;
}

做题的时候我一直在想如果扔出了三个6,然而你只买了一瓶水那怎么办/doge

猜你喜欢

转载自blog.csdn.net/Richard_1101/article/details/108304773
今日推荐