目录:
01:判断数正负
提示:见代码。
#include <cstdio>
using namespace std;
int main(){
int n;
scanf("%d",&n);
if(n>0){
printf("positive");
}else if(n==0){
printf("zero");
}else{
printf("negative");
}
return 0;
}
02:输出绝对值
提示:注意输出是保留两位小数。
#include <cstdio>
using namespace std;
int main(){
float n;
scanf("%f",&n);
if(n>=0){
printf("%.2f",n);
}else{
printf("%.2f",-1*n);
}
return 0;
}
03:奇偶数判断
提示:见代码。
#include <cstdio>
using namespace std;
int main(){
int n;
scanf("%d",&n);
if(n%2==0){
printf("even");
}else{
printf("odd");
}
return 0;
}
04:奇偶ASCII值判断
提示:通过int(a)
将字符a
进行类型转换就能得到它的ASCII码。
#include <cstdio>
using namespace std;
int main(){
char a;
scanf("%c",&a);
if(int(a)%2==0){
printf("NO");
}else{
printf("YES");
}
return 0;
}
05:整数大小比较
提示:注意数据范围是-231 <= y < 231 ,比int
的范围大了1位,使用long long
不然会报错。
#include <cstdio>
using namespace std;
int main(){
long long x,y;
scanf("%lld%lld",&x,&y);
if(x>y){
printf(">");
}else if(x<y){
printf("<");
}else{
printf("=");
}
return 0;
}
06:判断是否为两位数
提示:两个条件需要用&&
进行连接。
#include <cstdio>
using namespace std;
int main(){
int a;
scanf("%d",&a);
if(a>=10&&a<=99){
printf("1");
}else{
printf("0");
}
return 0;
}
07:收集瓶盖赢大奖
提示:两个条件满足任意一个就可以了,所有使用||
连接条件。
#include <cstdio>
using namespace std;
int main(){
int a,b;
scanf("%d%d",&a,&b);
if(a>=10||b>=20){
printf("1");
}else{
printf("0");
}
return 0;
}
08:判断一个数能否同时被3和5整除
提示:int
最大是11位数,所以开int
就足够了。
#include <cstdio>
using namespace std;
int main(){
int n;
scanf("%d",&n);
if(n%3==0&&n%5==0){
printf("YES");
}else{
printf("NO");
}
return 0;
}
09:判断能否被3,5,7整除
提示:用if
并列分别取余3、5、7会简单很多,不用一个一个去列举所有情况,注意3和5后面要加空格。
#include<cstdio>
using namespace std;
int main(){
int a;
scanf("%d",&a);
if(a%3==0) printf("3 ");
if(a%5==0) printf("5 ");
if(a%7==0) printf("7");
if(a%3!=0&&a%5!=0&&a%7!=0) printf("n");
return 0;
}
10:有一门课不及格的学生
提示:注意是恰好有一门不及格(小于60)。
#include<cstdio>
using namespace std;
int main(){
int a,b;
scanf("%d%d",&a,&b);
if(a<60&&b>=60 || a>=60&&b<60){
printf("1");
}else{
printf("0");
}
return 0;
}
11:晶晶赴约会
提示:见代码。
#include<cstdio>
using namespace std;
int main(){
int n;
scanf("%d",&n);
if(n==1||n==3||n==5){
printf("NO");
}else{
printf("YES");
}
return 0;
}
12:骑车与走路
提示:见代码。
#include<cstdio>
using namespace std;
int main(){
float n,t1,t2;
scanf("%f",&n);
t1=n/3.0+27+23;
t2=n/1.2;
if(t1<t2){
printf("Bike");
}else if(t1>t2){
printf("Walk");
}else{
printf("All");
}
return 0;
}
13:分段函数
提示:见代码。
#include<cstdio>
using namespace std;
int main(){
float x,y;
scanf("%f",&x);
if(x>=0&&x<5){
y=-1*x+2.5;
}else if(x>=5&&x<10){
y=2-1.5*(x-3)*(x-3);
}else if(x>=10&&x<20){
y=x/2-1.5;
}
printf("%.3f",y);
return 0;
}
14:计算邮资
提示:先设定变量n
和变量t
表示总运费和超重要计算的次数。因为不足500页要按500算,所以可以用ceil()
函数进行向上取整。
注意:使用%c
读取字符时,会读到空格或回车,所以像这类读单个字符的问题,优先创建字符数组,用%s
读,然后通过%c
输出单个字符。或者使用cin
。
#include<cstdio>
#include<math.h>
using namespace std;
int main(){
int a,n,t;
char b[10];
scanf("%d%s",&a,&b);
t=ceil((a-1000)*1.0/500); //对超出的部分向上取整
n=8; //基础运费8元
if(t>=1) n=n+t*4;
if(b[0]=='y') n=n+5;
printf("%d",n);
return 0;
}
15:最大数输出
提示:建立变量m
用来存储当前最大的数。
#include<cstdio>
using namespace std;
int main(){
int a,b,c,m;
scanf("%d%d%d",&a,&b,&c);
if(a>b) m=a;
else m=b;
if(c>m) m=c;
printf("%d",m);
return 0;
}
16:三角形判断
提示:三角形的任意两边之和都大于第三边,根据这个特性可以得到以下代码。
#include<cstdio>
using namespace std;
int main(){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a) printf("yes");
else printf("no");
return 0;
}
17:判断闰年
提示:这题的提示不是很清晰,闰年分为普通闰年和世纪闰年。
普通闰年:年份是4的倍数,且不是100的倍数(如2020年)。
世纪闰年:年份是400的倍数(如2000年)。
#include<cstdio>
using namespace std;
int main(){
int a;
scanf("%d",&a);
if(a%4==0&&a%100!=0||a%400==0) printf("Y");
else printf("N");
return 0;
}
18:点和正方形的关系
提示:判断x,y的边界坐标就可以了。
#include<cstdio>
using namespace std;
int main(){
int x,y;
scanf("%d%d",&x,&y);
if(x<=1&&x>=-1&&y<=1&&y>=-1) printf("yes");
else printf("no");
return 0;
}
19:简单计算器
提示:见代码。
#include<iostream>
using namespace std;
int main(){
int a,b;
char c;
cin>>a>>b>>c;
if(c=='+') cout<<a+b;
else if(c=='-') cout<<a-b;
else if(c=='*') cout<<a*b;
else if(c=='/')
if(b==0) cout<<"Divided by zero!";
else cout<<a/b;
else cout<<"Invalid operator!";
return 0;
}
20:求一元二次方程的根
提示:见代码。
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int main(){
double a,b,c,x;
cin>>a>>b>>c;
if(b*b==4*a*c)
printf("x1=x2=%.5f",(-b+sqrt(b*b-4*a*c))/(2*a));
else{
if(b*b>4*a*c)
printf("x1=%.5f;x2=%.5f",(-b+sqrt(b*b-4*a*c))/(2*a), (-b-sqrt(b*b-4*a*c))/(2*a));
else{
x=(-b/(2*a));
if(x==-0.00000)
x=0;
printf("x1=%.5f+%.5fi;x2=%.5f-%.5fi",x,(sqrt(4*a*c-b*b)/(2*a)),x,(sqrt(4*a*c-b*b)/(2*a)));
}
}
return 0;
}
21:苹果和虫子2
提示:同样使用ceil
进行向上取整,注意有测试点,是会把苹果吃完的,所以要考虑0的情况。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,x,y,e;
cin>>n>>x>>y;
e=ceil(y*1.0/x);
if(n>e) cout<<n-e;
else cout<<0;
return 0;
}
以上为个人见解,欢迎指正!