C言語でProject Euler(プロジェクト・オイラー)に挑戦 > スポンサー広告 > C言語でProject Euler 【Problem8】

    C言語でProject Euler(プロジェクト・オイラー)に挑戦 > Project Euler(プロジェクト・オイラー)【Problem 6~10】 > C言語でProject Euler 【Problem8】

    スポンサー広告

    スポンサーサイト

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    Project Euler(プロジェクト・オイラー)【Problem 6~10】

    C言語でProject Euler 【Problem8】

    Project Euler(プロジェクトオイラー)のproblem8☆
    C言語を使っています。


    /* Problem 8 †*/
    以下の1000桁の数字から5つの連続する数字を取り出してその積を計算する。
    そのような積の中で最大のものの値はいくらか。


    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>

    int main(void)
    {
        char str[]="7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450";

        char str2[1];
        int i, j, k, buf[5], ans, ansmax = 0;

        for(i=0; i<=1000-5; i++){
            k = 4;

            for(j=i; j<=i+4; j++){
                // 整数型配列にセットするため、1文字にしてから数値に変換
                str2[0] = str[j];
                buf[k] = atoi(str2);

                k--;
            }

            ans = 1;
            for(j=0; j<5; j++) ans *= buf[j];
            if(ansmax < ans) ansmax = ans;

        }

        printf("最大値 %d\n", ansmax);

        getch();
        return 0;
    }




    このProject Euler(プロジェクトオイラー) Problem8、私には難関でした。
    C言語の配列とか数値から文字列への変換とかを、わかっていないんだな、と痛感
    でも、この問題が解けて、少しだけわかったような気がします




    ☆応援お願いします☆
    にほんブログ村 IT技術ブログ C/C++へ
    にほんブログ村


    <<C言語でProject Euler 【Problem9】C言語でProject Euler(プロジェクト・オイラー)に挑戦C言語でProject Euler 【Problem7】>>

    <<C言語でProject Euler 【Problem9】C言語でProject Euler(プロジェクト・オイラー)に挑戦C言語でProject Euler 【Problem7】>>

    コメント

    • No title
    • 9.なんこつ
    • 2011年03月24日 |
    • C言語難しいですよね[��ʸ��:v-12]
      宣言の型多すぎですよね[��ʸ��:v-164]
    • [編集]
    • なんこつさん!ありがとうございます
    • 10.CEuler
    • 2011年03月24日 |
    • ですよね・・難しいですよねv-37
      これからも頑張りましょう!!
    • [編集]
    • No title
    • 11.シーフード
    • 2011年04月01日 |
    • 俺もc言語でパソコン甲子園目指しててproject euler にも挑戦しています!!!

      problem 15難しいorz
    • [編集]
    • シーフードさん!ありがとうございます
    • 12.CEuler
    • 2011年04月03日 |
    • おぉ!C言語でパソコン甲子園にProject Eulerやってるとは☆
      もうProblem15までいってるんですね。
      私もがんばります!!
      またいろいろ教えてくださいね!
    • [編集]

    コメントする

    トラックバック


    この記事にトラックバックする(FC2ブログユーザー)

    カテゴリ

    最新記事

    WiMAX & WiFi & モバイル

    便利ソフトいろいろ

    最新トラックバック

    最新コメント

    カウンター

    BlogRancking



    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。