[入試数学]京大2014理系大問5をC言語で解いてみた

C言語

問題内容

京大 理系 2014 大問5 です

安定の整数問題ですね、
ただ今回はa、bの値に範囲が無いのでそこは少し考えます。



コード

#include <stdio.h>

int main(int argc, const char * argv[]) {
    
    int min=100*100 + 100*100;
    
    for(int a=1; a<100; a++){
        for(int b=1; b<100; b++){
            if((a%3!=0) && (b%3!=0) && ((a*a*a+b*b*b)%81==0))
                if((a*a+b*b)<min){
                    min = a*a + b*b;
                    printf("%d,%d,%d\n",a,b,min);
                }
        }
    }
    return 0;
}

二重ループで総当りで調べていくいつものやつですね。

ただ今回はaとbの範囲が自然数としか設定されていないので、
一旦どちらも1~99で調べています。


今回は最小値を調べる問題なのでaとbが100以上を取りうる場合の
a*a + b*bの最小値
、すなわち100*100 + 100*100を始めにminに格納してます。

もし実行してコンソール画面に何も出なければNの値変えろって意味です。

まあN=100のときで出たので何もする必要はありませんでした。


答えは最後に出力されたa=13,b=14ですね。



感想

取り扱う値の上限が決まっていない整数問題でも、
最小値を求める場合ならC言語で対応できることがわかりました。


ではまた、

コメント

タイトルとURLをコピーしました