開啟章節選單
11461 Square Number
必考題目之一
題目連結
題目敘述
一個「平方數」是指其平方根也是整數的整數
例如 1、4、81 都是平方數
給定兩個整數 a 與 b
你需要計算在區間 a, b(含端點)之中
有多少個平方數
輸入格式
多行輸入,每行包含兩個整數 a 和 b(0 < a ≤ b ≤ 100000)
輸入以一行 “0 0” 終止,這一行不做處理
輸出格式
對於每一行有效輸入,輸出一行整數
表示在 a, b 範圍內的平方數個數
解題思路
使用 for
迴圈檢查 a ~ b 之間的數字 i
使用 sqrt()
開根號函式來判斷 i 開根號過後是否為整數
若為整數即為平方數
程式碼
#include <bits/stdc++.h> using namespace std; int main() { int a, b; while (cin >> a >> b, a+b) { // 重複輸入兩整數,若兩整數皆為 0 則終止 int cnt = 0; // 紀錄平方數出現的次數 for (int i = a; i <= b; i++) cnt += sqrt(i) == (int)sqrt(i); // 使用 for 迴圈檢查 a ~ b 之間的數字 i 是否為平方數 cout << cnt << '\n'; // 輸出次數 } }