题目描述
小朋友们都喜欢放鞭炮,尤其是男生在春节时,什么爆竹、摔炮还有各种烟花,玩得不亦乐乎。
今年的春节,小冲就不开心了,因为他在踢足球的时候把脚给扭伤了,现在只能躺在床上听着外面的小伙伴们放鞭炮的声音发呆,他发现,有时会有几个鞭炮同时想,有时却只有一个鞭炮想。爸爸知道小冲是个信息学竞赛爱好者,于是给他出了一个问题:有3个人同时开始放鞭炮,甲每2秒放一个,乙每3秒放一个,丙每5秒放一个,每个人都放10个鞭炮,你一共能听到多少次鞭炮响声呢?
小冲觉得这个问题太简单了,他想把程序编写得能够满足更有难度的要求:一共有n个小朋友同时开始放鞭炮,每个人放鞭炮间隔的时间不同,所放的鞭炮的数量也不同,等到大家都放完自己的鞭炮,一共能听到多少次鞭炮响声呢?小冲编写这个程序当然没问题,你能编写出来吗?
输入
第一行是一个自然数:n,表示一共有n个小朋友放鞭炮;
然后往下一共有n行,每行有两个自然数,i和j,表示这个小朋友每i秒种放一个鞭炮,一共放j个。
输出
只有一个数据:所有小朋友放完鞭炮后,小冲一共听到了多少次鞭炮的响声。
样例输入
3 2 5 3 5 5 4
样例输出
11
数据范围限制
1<=n<=100,1<=i,j<=1000。
提示
甲小朋友放完5个,乙放完5个,丙放完4个鞭炮后,小冲一共听到了11次鞭炮的响声。
实现代码:
#include<iostream>//头文件
using namespace std;
bool a[1000001]={};//判断其中一秒是否放鞭炮
int main()//主函数
{
int n,s,d,q;//分别代表人数,每秒放鞭炮数,共放鞭炮数 ,计数器
cin>>n;//输入
for(int i=1;i<=n;i++)//分别输入每个小朋友信息
{
cin>>s>>d;//输入
for(int j=0;j<d;j++)a[j*s]=true;//从第0秒开始,放鞭炮的那一秒标记为有声音
}
for(int i=0;i<=1000001;i++)//循环可能放鞭炮的秒数
if(a[i]==true)q++; //如果有放鞭炮计数器++
cout<<q;//输出
}
运行结果: