C语言 - ACM题目:大爱数字7

/*
    题目:有人很喜欢数字7,喜欢到什么程度呢,就是连能整除7的二位数也喜欢,0不能被整除7.现在有一个正整数(数字的首位不为0),求最多有几个数字他也喜欢。
    输入文字描述:有多组数据,每组数据有一个整数(至少1位,至多500位)。
    输出文字描述:输出相应的答案,占一行。
    Input:
        123456789
        707
    Output:
        3
        3
*/
#include <stdio.h>
int main()
{
    int a[500], i, j, k, m, count;
    char b[520];
    while( gets(b) )
    {
        for(i=0; b[i]!='\0'; i++)    // 字符转数字
            a[i] = b[i] - '0';
		for(j=0; j<i; j++)     // 去掉重复的数字
			for(k=j+1; k<i; k++)
				if(a[j] == a[k])
				{
					for(m=k; m<i; m++)
						a[m] = a[m+1];
					i--;
				}
		for(j=0, count=0; j<i; j++)    // 计数大爱的数字 7
		{
			if( (a[j] != 0) && (a[j] % 7 == 0) )
				count++;
			if( (j != i-1) && (a[j] != 0) && ( ( a[j] * 10 + a[j+1] ) % 7 == 0 ) )
				count+=2;
		}
		printf("%d\n", count);
    }
    return 0;
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值