目录
题目描述:
此时一批勇士也随之而来,但其能力也是参差不齐,我们需要挑选出最优秀的勇士来守护这片大陆。每位勇士都有属于自己的编号,而我们现在有四张卡片里面分别标记了一个号码,当勇士的编号为其中某一张卡片中号码的倍数时说明该勇士是优秀的。目前有 n 名勇士(编号 1-n)并且告诉你卡片内的号码,请你计算出能挑选出多少位勇士?
输入格式
第一个行读入一个正整数 n。
第二行读入四个正整数 a, b,c, d 分别表示四张卡片内的号码。
输出格式
输出挑选出来的勇士个数。
输入样例1
输入
10
2 3 5 7
输出
9
输入样例2
输入
20
6 7 13 9
输出
7
思路解析:
我们需要定义一个整形n来接收勇士的数量,然后定义一个数组来储存四张卡牌的号码,定义一个整形count并初始化为0表示目前挑选勇士的数量。
然后让编号1~n的勇士依次检查四张卡牌中有没有自己的倍数,如果有的话,计数器count自增1。
具体代码:
#include<stdio.h>
int main(void)
{
int n;
int arr[4];//四张卡牌
scanf("%d",&n);
int count = 0;//计数器
for(int i = 0;i<4;i++)
scanf("%d",&arr[i]);
for(int i = 1;i<=n;i++)
for(int j = 0;j<4;j++)
if(i%arr[j] == 0)
{
count++;
break;//一旦挑选就退出循环,以防重复挑选。
}
printf("%d",count);
}
总结:
两层for循环,遍历卡牌中的号码有没有勇士编号的倍数,计算符合条件的勇士数量。