[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/22 09:08 / Filesize : 317 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++の宿題を片付けます 109代目



438 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 18:19:22 ]
>>437 とりあえず問1だけ
#include <stdio.h>
unsigned int f(unsigned int a,unsigned int b,unsigned int m)
{
    /* a^b (mod m) */
    unsigned int x=1;
    while(b!=0){
        if(b%2==0){
            a=(a*a)%m;
            b=b/2;
            
        }
        else{
            x=(x*a)%m;
            b=b-1;
        }
    }
    return x;
}
int main( void )
{
    int i;
    int answer=0;
    for(i=1;i<=99;i++)
        answer=(answer+f(i,i,1000))%1000;
    printf("1^1+2^2+3^3+...+99^99≡%d (mod 1000)",answer);
    return 0;
}
実行結果:1^1+2^2+3^3+...+99^99≡920 (mod 1000)
a^b ( mod m)の値を返す関数の引数やら色々unsigned int になってるけど
気に入らなかったらこのくらいの計算ならintに変えても大丈夫だろう
というか、答えあってるのかな・・・これ






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<317KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef