传送门 <---------------------
注:代码 题解 仅供参考 严禁抄袭!!!严禁抄袭!!!
1001:
sort 排序后(从小到大)就可以从后往前找 如果有分数差值相同的,就会取分数高的。
注 :sort 需要 #include<algorithm> 。
不过现在 只要知道 sort() 可以从小到大排序就好了
感兴趣可以看这个 (初学可能 看不懂 可与先了解一下)
也可以不用排序 直接找,不过注意找到 分数同样接近的 要取最大值。
1001
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
int n,gad;
scanf("%d %d",&n,&gad);
int der=0x3f3f3f3f;
int a[n];
int t=-1;
for(int i=0;i<n;i++) scanf("%d",&a[i]);
sort(a,a+n);
for(int i=n-1;i>=0;i--)
{
if(abs(a[i]-gad)<der)
{
der=abs(a[i]-gad);
t=a[i];
}
}
printf("%d\n",t);
return 0;
}
1002:
注:strcmp 函数 需要 #include<cstring>
详细解释可以看这个
strcmp函数详解:字符串【比较】的利器-CSDN博客
注意多组数据
注意 ac题数可能为0 特殊情况
1002
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int gad=0;
int num=0;
while(n--)
{
int x;
char c[10];
char ac[10];
scanf("%d %s",&x,&c);
if(strcmp(c,"AC")==0)
{
gad+=x;
num++;
}
}
if(num!=0)printf("%d %d\n",gad,gad/num);
else printf("0 0\n");
}
return 0;
}
1003:
条件判断一下就好
分4种情况 :
f1=1,f2=1 都可以
f1=0,f2=1; 只能晚跑
f1=1,f2=0; 只能晨跑
f1=0,f2=0 不管他
只能跑 一个的话直接减去 要求的次数(注意最后不能比0小)
然后判断 都可以跑的 次数是否 可以弥补剩下没跑的晨晚跑次数 就好了。
1003
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
int a,b,n;
int all=0;
scanf("%d %d %d",&n,&a,&b);
while(n--)
{
int f1,f2;
scanf("%d %d",&f1,&f2);
if(f1==0&&f2==1) b--;
else if(f1==1&&f2==0) a--;
else if(f1==1&&f2==1) all++;
}
//printf("%d %d\n",morning,night);
a=max(a,0);
b=max(b,0);
if(all-a-b>=0)
{
printf("Yes\n");
}
else printf("No\n");
return 0;
}
1004:
max /min 函数 需要#include<cmath>
也可以 用 if 判断 一样的
1004
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d\n",max(a,b));
}
return 0;
}
1005:
循环处理
每次要加的数 是之前的 数*10+a。
1005
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
int a,n;
while (scanf("%d %d",&a,&n)!=EOF)
{
int sum=0;
int temp=a;
for(int i=1;i<=n;i++)
{
if(i!=1)
{
temp=temp*10+a;
sum+=temp;
}
else
{
sum+=temp;
}
}
printf("%d\n",sum);
}
return 0;
}
1006:
判断完全平方数
sqrt函数 需要#include<cmath> 作用是开二次方根。
-1时 要退出循环
1006
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
if(n==-1) break;
if(int(sqrt(n))*int(sqrt(n))==n)
{
printf("Yes\n");
}
else printf("No\n");
}
return 0;
}
1007:
直接输出就好了
代码略 qwq
1008:
输入三角形的边长a、b和c,求其面积
保留小数,浮点数。
1008
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
double a,b,c;
scanf("%lf%lf%lf",&a,&b,&c);
double p=(a+b+c)/2;
printf("%.3f",sqrt(p*(p-a)*(p-b)*(p-c)));
}
1009:
整除 余除一下就好了。
注意输入的 数据单位是元,但糖果的单位是角。
1009
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
n*=10;
printf("%d %d\n",n/3,n%3);
return 0;
}
1010:
浮点数 保留 小数。
1010
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
double x;
scanf("%lf",&x);
printf("%.12f",x);
return 0;
}
1011:
注意 int 会不够,数据比较大,所以 用了 long long
仔细观察 是有规律的
由于是直角边关系 a^2+b^2=c^2
s1=s3+s2
s3=s4+s5
s2=s6+s7
你会发现每次增长的 面积就是 s1的面积 。
1011
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
long long a[3],n;
scanf("%lld%lld%lld%lld",&a[0],&a[1],&a[2],&n);
sort(a,a+3);
printf("%lld\n",(n+1)*(a[2]*a[2]));
return 0;
}
1012:
直接输出 2*n;
1012
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",n*2);
return 0;
}
1013:
数字三角形
注意数字前的空格数,数字间的空格,最后是换行 不要留空格。
耐心点就好。
1013
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
int space=(n-1)*2;
for(int i=1;i<=n;i++)
{
for(int j=space;j>=1;j--)
{
printf(" ");
}
space-=2;
for(int j=1;j<=i;j++)
{
if(j!=1) printf(" ");
printf("%d",j);
}
for(int j=i-1;j>=1;j--)
{
printf(" %d",j);
}
printf("\n");
}
return 0;
}
END