B4355 [GESP202506 一级] 值日
难度:入门 —— 入门+
这道题有三种解法,第三种解法在一部分比赛中被禁用
AC代码(第一种方法:循环)
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
for(int i=max(n,m);;i++)
{
if(i%m==0&&i%n==0)
{
cout<<i;
return 0;
}
}
return 0;
}
第二种方法:自定义函数gcd,lcm:
#include <iostream>
using namespace std;
int gcd(int n,int m)
{
return m==0?n:gcd(m,n%m);
}
int lcm(int n,int m)
{
return n*m/gcd(n,m);
}
int main()
{
int m,n;
cin>>n>>m;
cout<<lcm(n,m);
return 0;
}
第三种方法:导入numeric库
#include <iostream>
#include <numeric>
using namespace std;
int main()
{
int m,n;
cin>>n>>m;
int l=lcm(n,m);
cout<<l;
return 0;
}
B3971 [语言月赛 202405] 闰年
难度:入门
按照题意模拟,挨个判断即可
AC代码:
#include <iostream>
using namespace std;
int main()
{
#define int long long
int y;
cin>>y;
if(y%4!=0)
{
cout<<"No";
}
else if(y%4==0&&y%100!=0)
{
cout<<"Yes";
}
else if(y%100==0&&y%400!=0)
{
cout<<"No";
}
else if(y%400==0&&y%3200!=0)
{
cout<<"Yes";
}
else if(y%3200==0&&y%172800!=0)
{
cout<<"No";
}
else
{
cout<<"Yes";
}
return 0;
}
B3970 [语言月赛 202405] 数字取模
难度:入门
将x拆分即可后拼接即可
AC代码:
#include <iostream>
using namespace std;
int main()
{
#define int long long
int x,x1,x2,x3,x4,k;
cin>>x>>k;
x1=x/1000;
x2=x/100%10;
x3=x/10%10;
x4=x%10;
x1%=k;
x2%=k;
x3%=k;
x4%=k;
int x_=x1*1000+x2*100+x3*10+x4*1;
cout<<x_<<endl;
return 0;
}
B3931 [语言月赛 202402] 射箭
难度:入门
直接判断即可
AC代码:
#include <iostream>
using namespace std;
int main()
{
#define int long long
int x,y,z,cnt=0;
cin>>x>>y>>z;
if(x>y+z||y>x+z||z>y+x)
{
cnt++;
}
cout<<cnt;
return 0;
}
B3792 [NICA #1] 年龄问题
难度:入门- —— 入门
经典数学问题:年龄问题
AC代码:
#include <iostream>
using namespace std;
int main()
{
#define int long long
int a,b,c;
cin>>a>>b>>c;
int _=a-b,__=a+c;
cout<<_<<" "<<__;
return 0;
}
B3794 [NICA #1] 图形
难度:入门 —— 入门+
还是数学问题
求面积
注意:在此题中
AC代码:
#include <cstdio>
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
#define int long long
int x=0,y=0,a,b,c;
cin>>a>>b>>c;
double n,s,d=0;
x=a*c;
y=b*(a+c);
s=3.1415926535*c*c;
s/=4;
d=x+y+s;
d/=10000;
printf("%0.3lf\n",d);
return 0;
}