目录
1 余数相同问题
已知三个正整数 a,b,c。
现有一个大于1的整数x,将其作为除数分别除a,b,c,得到的余数相同。
请问满足上述条件的x的最小值是多少?
数据保证x有解。
输入
一行,三个不大于1000000的正整数a,b,c,两个整数之间用一个空格隔开。
输出
一个整数,即满足条件的x的最小值。
样例输入
300 262 205
样例输出
19
#include <bits/stdc++.h>
using namespace std;
int min(int a, int b, int c) {
int min = a;
if (b < min)
min = b;
if (c < min)
min = c;
return min;
}
int ys(int a, int b, int c) {
int i;
for (i = 2; i <= min(a, b, c); i++) {
int y1 = a % i, y2 = b % i, y3 = c % i;
if (y1 == y2 && y1 == y3 && y2 == y3)
break;
}
return i;
}
int main() {
int a,b,c;
cin>>a>>b>>c;
cout<<ys(a,b,c)<<endl;
system("color 6");
return 0;
}
2 生成括号
时间限制:1000
内存限制:65536
Paul是一名数学专业的同学,在课余选修了C++编程课,现在他能够自己写程序判断判断一个给定的由'('和')'组成的字符串是否是正确匹配的。可是他不满足于此,想反其道而行之,设计一个程序,能够生成所有合法的括号组合,请你帮助他解决这个问题。
输入
输入只有一行N,代表生成括号的对数(1 ≤ N ≤ 10)。
输出
输出所有可能的并且有效的括号组合,按照字典序进行排列,每个组合占一行。
样例输入
3
样例输出
((()))
(()())
(())()
()(())
()()()
详看代码:
#include <bits/stdc++.h>
using namespace std;
int N;
bool judge(bitset<20> temp){
int n