SSブログ

AOJ 0030: Sum of Integers [AOJ]

同じ問題を昔ひどい解き方をしたような気がするので※、書きなおしてみました.

(※9月20日付オワコンだと言われても: 0030「Sum of Integers」参照)
#include <stdio.h>

int get_sum(int num, int sum, int *u, int n){
    int i, j;
    
    if (num == 0 && sum == 0){
        return (1);
    }
    
    if (n > 9){
        return (0);
    }
    
    return (get_sum(num - 1, sum - u[n], u, n + 1) + get_sum(num, sum, u, n + 1));
}

int main(void)
{
    int sum, num;
    int u[10];
    int i;
    
    while (1){
        scanf("%d%d", &num, &sum);
        if (num == 0 && sum == 0) break;
        
        for (i = 0; i < 10; i++){
            u[i] = i;
        }
        
        printf("%d\n", get_sum(num, sum, u, 0));
    }
    
    return (0);
}

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

AOJ 0534: Chain2006年JOI予選模擬4 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。