2016年第七届蓝桥杯 - 国赛 - Java大学C组 - A. 平方末尾
生活随笔
收集整理的這篇文章主要介紹了
2016年第七届蓝桥杯 - 国赛 - Java大学C组 - A. 平方末尾
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
平方末尾
能夠表示為某個整數的平方的數字稱為“平方數” 比如,25,64 雖然無法立即說出某個數是平方數,但經常可以斷定某個數不是平方數。
因為平方數的末位只可能是:[0, 1, 4, 5, 6, 9] 這6個數字中的某個。
所以,4325435332必然不是平方數。
如果給你一個2位或2位以上的數字,你能根據末位的兩位來斷定它不是平方數嗎?
請計算一下,一個2位以上的平方數的最后兩位有多少種可能性?
注意:需要提交的是一個整數,表示2位以上的平方數最后兩位的不同情況數。 不要填寫任何多余內容(比如,說明解釋文字等)
Ideas
一種最暴力的方案,就是多遍歷一些數字,把它的平方數的末尾兩位添加到一個集合中,最后輸出集合的長度。
Code
C++
#include <iostream> #include <cstring>using namespace std;int main() {int num_2[100], ans = 0;memset(num_2, 0, sizeof(num_2));for (long long i = 1; i < 1000000; i++)num_2[(i * i) % 100]++;for (int i = 0; i < 100; i++)if (num_2[i]) ans++;cout << ans << endl;return 0; }Python
if __name__ == '__main__':ans = set()for i in range(4, 10000):ans.add((i * i) % 100)print(len(ans))Answer: 22
總結
以上是生活随笔為你收集整理的2016年第七届蓝桥杯 - 国赛 - Java大学C组 - A. 平方末尾的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2016年第七届蓝桥杯C/C++ A组国
- 下一篇: 2016年第七届蓝桥杯C/C++ C组国