0和5

xiaoxiao2022-06-12  62

小K手中有n张牌,每张牌上有一个一位数的数,这个字数不是0就是5。小K从这些牌在抽出任意张(不能抽0张),排成一行这样就组成了一个数。使得这个数尽可能大,而且可以被90整除。

注意:

1.这个数没有前导0,

2.小K不需要使用所有的牌。

Input 每个测试数据输入共2行。 第一行给出一个n,表示n张牌。(1<=n<=1000) 第二行给出n个整数a0,a1,a2,…,an−1 (ai是0或5 ) 表示牌上的数字。 Output 共一行,表示由所给牌组成的可以被90整除的最大的数,如果没有答案则输出”-1”(没有引号) Sample Input 4 5 0 5 0 Sample Output 0

代码:

#include <stdio.h> #include <stdlib.h> int main() {int n,i,t,a=0,b=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&t); if(t==0) a++; else b++; } if(a==0) printf("-1\n"); else { if(b<9) printf("0\n"); else { for(i=0;i<9*(b/9);i++) { printf("5"); } for(i=0;i<a;i++) printf("0"); }printf("\n"); } return 0; }

注意:如果要计算能否被9整除,只要把这个数的各位数加起来能被9整除即可,比如如果只有5组成的数要被9整除就要有9个5即555555555

转载请注明原文地址: https://www.6miu.com/read-4932705.html

最新回复(0)