SGU 118. Digital Root 找规律+模拟

来源:互联网 发布:js reverse返回值 编辑:程序博客网 时间:2024/06/07 09:29

题目链接点这儿

嘛。。。打表就可以看出是模9的结果

因为一个数比如a1a2a3a4……可以拆成a1+a2+a3+a4+a1*999+a2*99+a3*9

把这个式子模个9就得到a1+a2+a3+a4。。。。然后。。。就没有然后了。。

下面放出代码

#include <bits/stdc++.h>#define max(a,b) ((a)>(b)?(a):(b))#define min(a,b) ((a)>(b)?(b):(a))#define rep(i,initial_n,end_n) for(int (i)=(initial_n);(i)<(end_n);i++)#define repp(i,initial_n,end_n) for(int (i)=(initial_n);(i)<=(end_n);(i)++)#define reep(i,initial_n,end_n) for((i)=(initial_n);(i)<(end_n);i++)#define reepp(i,initial_n,end_n) for((i)=(initial_n);(i)<=(end_n);(i)++)#define eps 1.0e-9#define MAX_N 1010using namespace std;typedef pair<int, int> pii;typedef pair<double, double> pdd;typedef long long ll;typedef unsigned long long ull;int main() {    int nn, n, tmp, ans, tmpp;    scanf("%d", &nn);    while(nn--) {        scanf("%d", &n);        ans = 0, tmp = 1;        rep(i, 0, n) {            scanf("%d", &tmpp);            tmp = tmp * (tmpp%9) % 9;            ans = (ans + tmp)%9;        }        if(!ans) puts("9");        else printf("%d\n", ans);    }    return 0;}


0 0
原创粉丝点击