UVa 11934 - Magic Formula

( Tip: 點擊左上方的三橫槓選單按鈕,可以收起左側 Pdf 頁。)

Step 1. 題目概要

有一個方程式f(x) = ax^2 + bx + c,問 有多少個f(x)可以被d給整除(x的範圍是從0~L)。

  • 末列輸入 0 0 0 0 0 表示終止輸入

Step 2. 解題思路

  • 可利用while迴圈,當輸入的a、b、c、d和l都不為零時執行。
  • 在迴圈中的for迴圈用於遍歷從0到l的所有值。在每個值x上,它計算方程式(axx + b*x + c) % d的結果,如果結果等於0,則將答案ans加1。最後,輸出答案ans。
  • 整個程式的目的是計算給定方程式在給定範圍內有多少個解,並將結果輸出。

Step 3. 範例輸入與輸出 - Sample Input and Output

Step 4. 參考程式碼 - Accepted Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);

int a,b,c,d,l;
while((cin>>a>>b>>c>>d>>l) && !(a==0 && b==0 && c==0 && d==0 && l==0)) {
int ans=0;
for(int x=0;x<=l;x++) {
if((a*x*x+b*x+c)%d==0) ans++;
}
cout<<ans<<"\n";
}
return 0;
}