51nod1770: 数数字(模拟)

来源:互联网 发布:php专科考试题及答案 编辑:程序博客网 时间:2024/06/06 22:44

1770 数数字
基准时间限制:1 秒 空间限制:262144 KB 分值: 20 难度:3级算法题
 收藏
 关注

统计一下 aaa  aaana × b 的结果里面有多少个数字d,a,b,d均为一位数。

样例解释:

3333333333*3=9999999999,里面有10个9。


Input
多组测试数据。第一行有一个整数T,表示测试数据的数目。(1≤T≤5000)接下来有T行,每一行表示一组测试数据,有4个整数a,b,d,n。 (1≤a,b≤9,0≤d≤9,1≤n≤10^9)
Output
对于每一组数据,输出一个整数占一行,表示答案。
Input示例
23 3 9 103 3 0 10
Output示例
100
思路:判断是否需要进位即可,写几个例子就能找到规律。

# include <stdio.h>int main(){    int t, a, b, d, n;    scanf("%d",&t);    while(t--)    {        int c[10] = {0};        scanf("%d%d%d%d",&a,&b,&d,&n);        int tmp = a*b;        if(tmp < 10)        {            if(tmp == d)                printf("%d\n",n);            else                puts("0");        }        else        {            int p = tmp%10;            int q = tmp/10;            if(p + q < 10)            {                ++c[q];                ++c[p];                c[p+q] += n-1;                printf("%d\n",c[d]);            }            else            {                if(n > 1)                {                    ++c[p];                    ++c[(p+q)%10];                    ++c[q+1];                    c[(p+q+1)%10] += n-2;                }                else//n==1时另外讨论                {                    ++c[p];                    ++c[q];                }                printf("%d\n",c[d]);            }        }    }    return 0;}



0 0
原创粉丝点击