FZOJ 2102 Solve equation
Posted ZefengYao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FZOJ 2102 Solve equation相关的知识,希望对你有一定的参考价值。
Accept: 1097 Submit: 2608
Time Limit: 1000 mSec Memory Limit :
32768 KB
Problem Description
You are given two positive integers A and B in Base C. For the equation:
We know there always existing many non-negative pairs (k, d) that satisfy the equation above. Now in this problem, we want to maximize k.
For example, A="123" and B="100", C=10. So both A and B are in Base 10. Then we have:
(1) A=0*B+123
(2) A=1*B+23
As we want to maximize k, we finally get one solution: (1, 23)
The range of C is between 2 and 16, and we use ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘ to represent 10, 11, 12, 13, 14, 15, respectively.
Input
The first line of the input contains an integer T (T≤10), indicating the number of test cases.
Then T cases, for any case, only 3 positive integers A, B and C (2≤C≤16) in a single line. You can assume that in Base 10, both A and B is less than 2^31.
Output
Sample Input
Sample Output
#define _CRT_SECURE_NO_DEPRECATE #include<iostream> #include<algorithm> #include<string> using namespace std; int base; int translator(string s) { int sum = 0; for (int i = 0; i < s.size();i++) { if (s[i] >= ‘0‘&&s[i] <= ‘9‘) sum = sum*base + s[i] - ‘0‘; else sum = sum*base + s[i] - ‘a‘ + 10; } return sum; } int main() { int T; scanf("%d",&T); while (T--) { string s1, s2; cin >> s1 >> s2; scanf("%d",&base); int a = translator(s1); int b = translator(s2); int c = a / b; int mod = a%b; printf("(%d,%d)\n",c,mod); } return 0; }
以上是关于FZOJ 2102 Solve equation的主要内容,如果未能解决你的问题,请参考以下文章
[leetcode-640-Solve the Equation]
[LeetCode] Solve the Equation 解方程
HDU 2199 Can you solve this equation?(二分搜索)
杭电2199.Can you solve this equation?