[Atelier Blue アトリエブルー]Homeコンテストパソコン甲子園2003年本選>1問目

11問目(四重ループ)

問題

50以下の正の整数nを入力し、0~9の範囲の整数a,b,c,dの組で以下の式を満たす組み合わせ数を出力する。

a + b + c + d = n

入力

n(整数)

出力

a,b,c,dの組み合わせの個数(整数)

入力例

35

出力例

4

解き方例

めんどくさいので、4重for文で計算します。

ソースコード

お持ち帰り

C/C++

#include <stdio.h>

int main(){
    int in,n,count,i,j,k,l;
    count=0;

    scanf("%d",&in);
    for(i=0;i<10;i++){
        n=i;
        for(j=0;j<10;j++){
            n+=j;
            for(k=0;k<10;k++){
                n+=k;
                for(l=0;l<10;l++){
                    if(n+l ==in){
                        count++;
                    }
                }
                n-=k;
            }
            n-=j;
        }
    }
    printf("%d",count);

    return 0;
}

その他

速度的にはまあまあでしょうが、実装しやすいですし良い感じでしょう。


ページの一番上へ
前のページへ 一覧に戻る 次のページへ
初版2006-5-9
[Atelier Blue アトリエブルー]Homeコンテストパソコン甲子園2003年本選>1問目