51Nod 1433 0和5(9的倍数理论)

Posted 谦谦君子,陌上其华

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51Nod 1433 0和5(9的倍数理论)相关的知识,希望对你有一定的参考价值。

http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1433

 

思路:

数论中关于9的倍数的理论:若是一个数能被9整除,则各位数之和为9的倍数。

因为这题是90的倍数,所以至少得有一个0。

分别统计0和5的个数,9个5相加的话就是9的倍数,计算出能有几个9个5,剩下的0全排最后就可以了。

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstring>
 4 #include<cstdio>
 5 #include<vector>
 6 #include<stack>
 7 #include<queue>
 8 #include<cmath>
 9 using namespace std;
10 
11 int n;
12 
13 int main()
14 {
15     //freopen("D:\\\\input.txt","r",stdin);
16     int x;
17     while(scanf("%d",&n)!=EOF)
18     {
19         int sum_5=0,sum_0=0;
20         while(n--)
21         {
22             scanf("%d",&x);
23             if(x==5)  sum_5++;
24             else sum_0++;
25         }
26         if(sum_0==0)  {puts("-1");continue;}
27         sum_5-=sum_5%9;
28         if(sum_5)
29         {
30             while(sum_5--)
31                 printf("5");
32             while(sum_0--)
33                 printf("0");
34             printf("\\n");
35         }
36         else puts("0");
37     }
38     return 0;
39 }

 

以上是关于51Nod 1433 0和5(9的倍数理论)的主要内容,如果未能解决你的问题,请参考以下文章

51NOD1433] 0和5(数论,规律)

51Nod 1433 0和5 (数论 && 被9整除数的特点)

51nod 1433 0和5

51nod 1284 2 3 5 7的倍数

51nod 1352 集合计数

51Nod 1352 集合计数 扩展欧几里得