51nod 1770 数数字 找规律,注意进位,时间复杂度O(n)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51nod 1770 数数字 找规律,注意进位,时间复杂度O(n)相关的知识,希望对你有一定的参考价值。
题目:
这题很简单,找规律即可。
考虑两次进位:
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)的主要内容,如果未能解决你的问题,请参考以下文章