51nod 1770 数数字 找规律,注意进位,时间复杂度O(n)

来源:互联网 发布:linux awk 分隔符 编辑:程序博客网 时间:2024/05/21 19:43

题目:
这里写图片描述

这题很简单,找规律即可。

考虑两次进位:

1.a*b时的进位。

2.aa*b时加法时进位。

代码:

#include <bits\stdc++.h>using namespace std;int num[10]; int main(){    int a,b,d,n,t;    cin >> t;    while(t--){        cin >> a >> b >> d >> n;        memset(num,0,sizeof(num));        if(n <= 5){            int t = n;            int s = 0;            while(t--){                s = s*10 + a;            }            s *= b;            do{                num[s%10]++;                s /= 10;            } while(s != 0);        }else{            int t = 3;            int s = 0;            while(t--){                s = s*10 + a;            }            s *= b;            int ge = s%10;            int shi = s/10%10;            int bai = s/100%10;            int qian = s/1000%10;            if(qian != 0){                num[qian]++;            }            num[ge]++;            num[shi]++;            num[bai] += n-2;        }        cout << num[d] << endl;    }    return 0;} 
阅读全文
0 0
原创粉丝点击