2012-06-09から1日間の記事一覧

project euler 6~10

6.1から100の和を2乗したものと1から100までの値各々を2乗した値をすべて足した値との差を出す int main(void){ int a=0,b=0; for(int i=1;i<101;i++){ a += i*i; b += i; } cout << b*b-a<<endl; return 0; } 7.素数の10001番目を出す。エラトステネスの篩を使いました #define smax 400000 int a[smax]; vector<int> num; void furui(){ fill(a,a+smax,1); a[0] = a[1] = 0; REP(i,2,</endl;>…

project euler 1~5

1. 3の倍数と5の倍数をたす(1000未満) int main(void){ int sum(0); REP(i,1,1000) if(i % 3 == 0 || i % 5 == 0) sum+=i; cout << sum << endl; return 0; } 2. フィボナッチ数列で偶数の値のものをたす(4000000以下まで) #define smax 10000000 int dp[sma…

topcoder SRM144 div2

最近始めたので過去問を解いて行きます。200: 秒が与えられるのでそれを時間:分:秒に変換する。sstreamを使った。 class Time { public: string whatTime( int seconds ) { stringstream ss; ss << seconds/3600<<":"<<seconds/60%60<<":"<<seconds%60; string str; ss >> str; return str; } };</seconds/60%60<<":"<<seconds%60;>

project euler 11~15

11. 縦横斜め4つの数字の積の最大を出力する 実質、下、右、斜め下右、左だけでいいです。 #define smax 20 int table[smax][smax]; int main(void){ rep(i,smax) rep(j,smax) cin >> table[i][j]; int res=-1; rep(i,smax){ int a[4]={}; rep(j,smax){ if(j…