zoukankan      html  css  js  c++  java
  • 51Nod

    小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

    题解:

    90 = 9 * 10。10好说,只要结果的数的末尾有零就肯定能被10整除。关键是九,能被九整除的数的各个位上的数之和也能被九整除。

    代码:

    #include <bits/stdc++.h>
    
    using namespace std;
    
    int numF,numZ;\5的个数,0的个数。
    
    int main(){
    	
    	int N;
    	while(scanf("%d",&N) == 1){
    		numF = numZ = 0;
    		for(int i=0 ; i<N ; ++i){
    			int t;
    			scanf("%d",&t);
    			if(t == 5)++numF;
    			else ++numZ; 
    		}
    		int F = numF/9;
    		if(numZ == 0)printf("-1
    ");
    		else if(F == 0)printf("0
    ");
    		else {
    			for(int i=1 ; i<=F*9 ; ++i)printf("5");
    			for(int i=1 ; i<=numZ ; ++i)printf("0");
    			printf("
    ");
    		}
    	}
    	
    	return 0;
    }
  • 相关阅读:
    .NET-记一次架构优化实战与方案-梳理篇
    .net core实践系列之SSO-跨域实现
    Vue
    C# WPF
    开源框架
    开源框架
    开源框架
    开源框架
    WCF
    WCF
  • 原文地址:https://www.cnblogs.com/vocaloid01/p/9514050.html
Copyright © 2011-2022 走看看