首先说明一下,这次小白月赛的前两道题很简单,基本上直接输出即可。
A - 最小的数字
题目链接
题目描述
给出一个整数 ,求最小的整数 x,满足 且 x 是 3 的倍数。
输入描述:
仅输入一行,包含一个整数 。
输出描述:
仅输出一行,包含一个整数 x,表示答案。
示例1
输入
1
输出
3
示例2
输入
3
输出
3
解题思路
这道题算是签到题,最直接的办法就是直接从n开始枚举,并输出第一个能被3整除的数即可。
AC代码
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<map>
#include<cmath>
using namespace std;
#define int long long
#define endl '\n'
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
const int N = 2010;
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
for (int i = n;; i++)
{
if (i % 3 == 0)
{
cout << i;
break;
}
}
return 0;
}
B - 优美的GCD
题目链接
题目描述
给出一个整数,请求出两个整数 x,y满足如下条件:
- 代表 x 和 y 的最大公约数。
如果有多个可行的答案,请输出任意一个。
输入描述:
第一行包含一个整数 ,表示测试用例的组数。
对于每组测试用例:
仅输入一行,包含一个正整数 。
输出描述:
对于每组测试用例:
仅输出一行,包含两个正整数 x,y。如果有多个可行的答案,请输出任意一个。
输入
2
3
2
输出
9 6
100 102
解题思路
这道题也不难,不要看到gcd(x,y)就害怕。实际上就是让我们输出两个不相同的数,但他们之间的差为若干倍的n。
比如:n=5,我们就可以输出 5 10 或 5 15 等等。
代码就很简单了,输入n后直接输出n和n的整数被即可。
AC代码
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
#define int long long
#define endl '\n'
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
const int N = 2010;
int gcd(int a, int b)
{
return a % b == 0 ? b : gcd(b, a % b);
}
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t;
cin >> t;
while (t--)
{
int n;
cin >> n;
cout<<n<<" "<<2 * n<<endl;
}
return 0;
}