CCF 201912-1 报数(c语言) 易于理解的普通做法

#include <stdio.h> /*开头*/
int ask (int n) {  /*根据题目要求,需要自定义能检测出含7的数字和7的倍数的函数*/
	int  c, e;     /*这里我们定义ask函数,能检测出输入的数字是否为含7的数字*/
	c = n;
	while (c > 0) {/*方法是提取输入数字的各位数看是否为7,然后return不同的结果,便于后面采用*/
		e = c % 10;
		c = c / 10;
		if (e == 7)
			return 1;
	}
	return 0;

}


int askt(int n) {/*这里我们定义askt函数,判定是否为7的倍数*/
	if (n % 7 == 0)/*方法是直接用%,然后return不同的结果,便于后面采用*/
		return 1;
	else
		return 0;


}

int main() {
	int n, a, b = 0, c = 0, d = 0, e = 0, f;
	scanf("%d", &n);/*开始工作,定义几个int型来储存甲乙丙丁跳过的次数*/
	for (a = 1; a <= n; a++) {
		if (ask(a) || askt(a)) {/*判断当数字存在7或为7的倍数任意一个满足时,执行以下命令*/

			f = a % 4;/*用余数判定甲乙丙丁哪个跳过了*/
			if (f == 1)
				b = b + 1;
			if (f == 2)
				c = c + 1;
			if (f == 3)
				d = d + 1;
			if (f == 0)
				e = e + 1;
			n = n + 1;
		}
		
	}
	printf("%d\n%d\n%d\n%d\n", b, c, d, e);/*甲乙丙丁打印出来甲乙丙丁跳过的次数*/



}

希望能对浏览的朋友有一点帮助,谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值