[C_MM058-中] 二項式求解
問題描述 :
給定一二項式,ax+by=c,輸入3個整數,a,b,c,求出所有x,y之非負整數解,並將其解依序列出。
例a=2, b=3, c=10, 2x+3y=10, 解答為x=2,y=2和x=5,y=0;結果列出如下所示:
2,2
5,0
輸入說明 :
輸入a,b,c之值,例如: (照a,b,c順序輸入)
2,3,10
輸出說明 :
輸出x,y解答,例如: (每組解依照x的大小來排序)
2,2
5,0
範例 :
給定一二項式,ax+by=c,輸入3個整數,a,b,c,求出所有x,y之非負整數解,並將其解依序列出。
例a=2, b=3, c=10, 2x+3y=10, 解答為x=2,y=2和x=5,y=0;結果列出如下所示:
2,2
5,0
輸入說明 :
輸入a,b,c之值,例如: (照a,b,c順序輸入)
2,3,10
輸出說明 :
輸出x,y解答,例如: (每組解依照x的大小來排序)
2,2
5,0
範例 :
Sample Input: | Sample Output: |
2,3,10 | 2,2 5,0 |
- #include <iostream>
- #include <string>
- #include <sstream>
- #include <algorithm>
- using namespace std;
- int main() {
- // [C_MM058-中] 二項式求解
- string in;
- int a, b, c;
- int count = 0;
- while(getline(cin, in))
- {
- stringstream ss(in);
- string token;
- //字串切割
- while (getline(ss, token, ','))
- {
- if(count == 0)
- {
- a = stoi(token);
- count++;
- }
- else if(count == 1)
- {
- b = stoi(token);
- count++;
- }
- else if(count == 2)
- {
- c = stoi(token);
- count++;
- }
- }
- //ax+by=c
- for(int i = 0;i < c;i++)
- {
- for(int j = 0;j < c;j++)
- {
- if(a*i+b*j == c)
- {
- cout << i << "," << j << endl;
- }
- }
- }
- }
- return 0;
- }
沒有留言:
張貼留言