码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-10-10 18:56:35      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:style   img   规律   pac   clu   class   set   复杂度   end   

题目:

技术分享

 

 

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

 

考虑两次进位:

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;
} 

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

标签:style   img   规律   pac   clu   class   set   复杂度   end   

原文地址:http://www.cnblogs.com/zhangjiuding/p/7646953.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!