0411小数点以下を作成

1655 ワード

問題の説明


与えられた数字のうち3つの数字を小数に加算すると、個数を求めてみます.数値を持つ配列numsをパラメータとする場合は、solution関数を完了してnumsの3つの異なる数値の小数を返します.

せいげんじょうけん


numsに含まれる数字の個数は3個または50個を超えない.
numsの各要素は1000より大きい自然数であり、重複する数字は含まれていない.

I/O例



コード#コード#

class Solution {
	public int solution(int[] nums) {
    	int answer = -1;
    	int a=0; 
    	for(int i=0; i<nums.length; i++){
        	for(int j=i+1; j<nums.length; j++){
            	for(int k=j+1; k<nums.length; k++){
                	a=nums[i]+nums[j]+nums[k];
                	answer++;
                
                	if(a%k==0){
                   		answer--;
                	}    
            	}
        	}
    	}
    	return answer;
	}
}
このコードは[1,2,3,4],[1,2,7,6,4]の数字よりも大きく,エラーが発生する.
再送コード
class Solution {
	public int solution(int[] nums) {
    	int answer = 0;
    	int a=0; 
    	for(int i=0; i<nums.length; i++){
        	for(int j=i+1; j<nums.length; j++){
            	for(int k=j+1; k<nums.length; k++){
                	a=nums[i]+nums[j]+nums[k];
                
                	int cnt=0;
                
                    for(int b=1; b<=a; b++){
                    	if(a%b==0){
                        	cnt++;
                    	}
                	}
                	if(cnt==2){
                    	answer+=1;
                	}
            	}
        	}
    	}
    	return answer;
	}
}

に答える


aに3つの数字を加え、forゲートを回し、a%bが0の場合、cnt++を加える.cntが2の場合、答えに1を追加します.