其他分享
首页 > 其他分享> > CCF 2019-12-1-报数

CCF 2019-12-1-报数

作者:互联网

本题其实是一道比较简单的题目,可一看到题目时,确实懵了一下,甲乙丙丁的跳过次数要依次输出的,而不仅仅是输出总的跳过次数。

/*四个人从1开始轮流报数,含有数字7或者是7的倍数就直接跳过 
输入: n-----报了n个数后游戏结束 
输出: 共四行,每行一个正整数,依次表示甲乙丙丁跳过的次数
*/ 
#include<stdio.h>
int a[10001];
int main()
{
	int n,i;
	int j=0,y=0,b=0,d=0;
	scanf("%d",&n);
	//int a[n];            数组大小不应该设为n了,n是改变的。 
	for( i=0;i<n;i++)
	{
		a[i]=i+1; 
	
		if((a[i]%4==1)&&(a[i]%7==0||a[i]%10==7||a[i]/10%10==7||a[i]/100==7))
		{
			j++;
			n++;            //不计入未被跳过的数,所以,事实上出现的数的个
			                //数应该是大于n的 ,每跳过一个数,应该补一个数。 
		}
		if((a[i]%4==2)&&(a[i]%7==0||a[i]%10==7||a[i]/10%10==7||a[i]/100==7))	
		{
			y++;
			n++;
	    }
		if((a[i]%4==3)&&(a[i]%7==0||a[i]%10==7||a[i]/10%10==7||a[i]/100==7))
		{
			b++;
			n++;
		}
		if((a[i]%4==0)&&(a[i]%7==0||a[i]%10==7||a[i]/10%10==7||a[i]/100==7))
		{
			d++;
			n++;
		}
    }
	printf("%d\n%d\n%d\n%d",j,y,b,d);               //注意输出格式
	return 0;	
 } 

标签:输出,12,题目,int,2019,数组,甲乙丙丁,CCF,本题
来源: https://blog.csdn.net/qq_54521127/article/details/121596739