Project Euler C C 解題記錄

2022-05-07 02:51:12 字數 3428 閱讀 1038

這題沒什麼好說的。

#includeusing namespace std;

int main()

}cout << sum << endl;

return 0;

}

觀察可以發現,每隔2個斐波那契數就會有乙個偶數。

a+=b;b+=a; 可以前進兩個數,且效率更高。

#includeusing namespace std;

int main()

cout << sum << endl;

return 0;

}

沒有優化。

#includeusing namespace std;

int main()

把所有的兩個三位數的積都求出來,然後比較。同樣沒有優化。

#includeusing namespace std;

int main()

if (reversed == k) }}

}cout << res << endl;

return 0;

}

就是求1-20的最小公倍數。

#includeusing namespace std;

int main()

res *= i / a;

}cout << res << endl;

return 0;

}

暴力,沒什麼好說的。

#includeusing namespace std;

int main()

cout << a * a - b << endl;

return 0;

}

埃式篩法。

#include#define max 2000000u

using namespace std;

bool primes[max];

int main() }}

cout << sum << endl;

return 0;

}

沒有優化。

#include#includeusing namespace std;

int main()

}if (fmod(root, 1) ? count > 249 : count > 250)

}}

設定快取,如果某一步的結果比原數小了,那麼直接從快取中取就可以了。

#includeusing namespace std;

unsigned num, maxnum = 0, temp;

unsigned short len, maxlen = 0, cache[1000000];

int main()

++len;

if (temp & 1)

else

}if (len > maxlen)

cache[num] = len;

}cout << maxnum << endl;

return 0;

}

沒什麼好說的。

#include#define max(a, b) (a > b ? a : b)

using namespace std;

int main() ,,,

,,,,

,,,,

,,,};

while (column = row--)

}cout << data[0][0] << endl;

return 0;

}

#includeusing namespace std;

int main()

res += temp;

}cout << res % 10000000000 << endl;

return 0;

}

動態規劃

#includeunsigned arr[80][80];

inline unsigned min(unsigned a, unsigned b)

int main()

else

}else if (j) }}

fclose(file);

printf("%u", arr[79][79]);

return 0;

}

#includeusing namespace std;

using flag=signed char;

flag cache[568];

flag calc(unsigned int x) ;

unsigned short res = 0;

while (x)

return cache[res] ? cache[res] : cache[res] = calc(res);

}int main()

cout << count << endl;

return 0;

}

#include#includeint main() 

}fclose(file);

printf("%u", maxline);

return 0;

}

把 n 平分為 k 份,k=round(n/e) 時乘積最大。

有限小數分母的因數只能包括 2 或 5 。

#define _use_math_defines

#include#includeusing namespace std;

int main()

temp /= a;

while (!(temp & 1))

while (!(temp % 5))

if (temp == 1)

else

}cout << sum << endl;

return 0;

}

快速冪取模

#includeusing namespace std;

int main()

base *= base;

base %= 100000000;

temp >>= 1;}}

cout << res << endl;

return 0;

}

閉式解 解析解

閉式解也被稱為解析解,是通過嚴格的公式所求得的解,即包含分式 三角函式 指數 對數甚至無限級數等基本函式的解的形式。通過給出解的具體函式形式,從解的表示式中就可以算出任何對應值。解析解,又稱為閉式解,是可以用解析表示式來表達的解。在數學上,如果乙個方程或者方程組存在的某些解,是由有限次常見運算的組合...

ambiguous column name解決辦法

在sql語句中,如果使用聯合檢索的話,很有可能會出現ambiguous column name的錯誤。原來在兩張表裡都有的欄位名稱,在選擇語句中要標明是哪張表裡的字段。所以改一下就行了,在報錯的欄位名前面加上該字段的表名 cursor datatool.dbhelpertools.select se...

python BeautifulSoup解析網頁

beautifulsoup是python的html xml解析工具,其是python爬蟲重要的模組,解析效果很好,下面就開始學習beautifulsoup學習。beautifulsoup在命令列模式下安裝 pip install beautifulsoup 現在安裝的是beautifulsoup4 ...