NOI题解(1.4编程基础之逻辑表达式与条件分支)
来源:互联网 发布:三菱plc计时器编程实例 编辑:程序博客网 时间:2024/05/16 15:49
01:判断数正负
#include "iostream"#include "math.h"#include "iomanip"/**/using namespace std;int main(){ long N; cin>>N; if(N>0) { cout<<"positive"<<endl; }else if(N==0) { cout<<"zero"<<endl; }else{ cout<<"negative"<<endl; } return 0;}
02:输出绝对值
#include "iostream"#include "math.h"#include "iomanip"/**/using namespace std;int main(){ float N; cin>>N; if(N>=0) { cout<<fixed<<setprecision(2)<<N; }else{ cout<<fixed<<setprecision(2)<<-N; } return 0;}
03:奇偶数判断
#include "iostream"#include "math.h"#include "iomanip"/**/using namespace std;int main(){ unsigned int N; cin>>N; if(N%2==0) { cout<<"even"; }else{ cout<<"odd"; } return 0;}
04:奇偶ASCII值判断
#include "iostream"#include "math.h"#include "iomanip"/**/using namespace std;int main(){ char N; N=getchar();//不能cin,否则没有考虑到空格 if((N+0)%2==0) { cout<<"NO"; }else{ cout<<"YES"; } return 0;}
05:整数大小比较
#include "iostream"#include "math.h"#include "iomanip"/* 对于无符号数,根据占用的位数可以直接计算: unsigned short 16位 0~2的16次方-1(即65535) unsigned int 16位 0~2的16次方-1(即65535) unsigned long 32位 0~2的32次方-1(即4294967295) 对于有符号数,由于0也占用一个位置,导致负数的边界值与正数的边界值不一样: short 16位 - 2的(16-1)次方~2的(16-1)次方-1(即-32768~32767) int 16位 - 2的(16-1)次方~2的(16-1)次方-1(即-32768~32767) long 32位 - 2的(32-1)次方~2的(32-1)次方-1(即-2147483648~2147483647) */using namespace std;int main(){ unsigned long x; long y; cin>>x>>y; long long N=(long long)x-y; if (N>0) { cout<<">"; }else if(N==0) cout<<"="; else cout<<"<"; return 0;}
06:判断是否为两位数
#include "iostream"#include "math.h"#include "iomanip"using namespace std;int main(){ unsigned short x; cin>>x; if (x>=10&&x<=99) { cout<<"1"; } else cout<<"0"; return 0;}
07:收集瓶盖赢大奖
#include "iostream"#include "math.h"#include "iomanip"using namespace std;int main(){ int a,b; cin>>a>>b; if(a>=10||b>=20) cout<<"1"; else cout<<"0"; return 0;}
08:判断一个数能否同时被3和5整除
#include "iostream"#include "math.h"#include "iomanip"using namespace std;int main(){ long num; cin>>num; if(num%3==0&&num%5==0) cout<<"YES"; else cout<<"NO"; return 0;}
09:判断能否被3,5,7整除
#include "iostream"#include "math.h"#include "iomanip"using namespace std;int main(){ long num; cin>>num; int count=0; if(num%3==0) { cout<<"3"; count++; } if(num%5==0) { if(count) cout<<" "; cout<<"5"; count++; } if(num%7==0) { if(count) cout<<" "; cout<<"7"; count++; } if(count==0) cout<<"n"; return 0;}
10:有一门课不及格的学生
#include "iostream"#include "math.h"#include "iomanip"using namespace std;int main(){ int math,english; cin>>math>>english; int count=0; if(math<60) count++; if(english<60) count++; if(count==1) cout<<"1"; else cout<<"0"; return 0;}
11:晶晶赴约会
#include "iostream"#include "math.h"#include "iomanip"using namespace std;int main(){ int N; cin>>N; switch (N) { case 1: cout<<"NO"; break; case 3: cout<<"NO"; break; case 5: cout<<"NO"; break; default: cout<<"YES"; } return 0;}
12:骑车与走路
#include "iostream"#include "math.h"#include "iomanip"using namespace std;int main(){ float N; cin>>N;// cout<<23+25+N/3.0; if(23+27+N/3.0>N/1.2) cout<<"Walk"; else if(23+27+N/3.0<N/1.2) cout<<"Bike"; else cout<<"All"; return 0;}
13:分段函数
#include "iostream"#include "math.h"#include "iomanip"using namespace std;int main(){ float x,y; cin>>x; if(x>=0&&x<5) y=-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; cout<<fixed<<setprecision(3)<<y; return 0;}
14:计算邮资
#include "iostream"#include "math.h"#include "iomanip"using namespace std;int main(){ int weight; char c; int charge; cin>>weight>>c; if(weight<=1000) charge=8; else{ //ceil()向上取整,头文件math.h charge=8+ceil(((double)weight-1000)/500)*4; } if(c=='y') charge+=5; cout<<charge;}
15:最大数输出
#include "iostream"#include "math.h"#include "iomanip"using namespace std;int main(){ int num[3]; cin>>num[0]>>num[1]>>num[2]; int max=num[0]; for(int i=0;i<3;i++) { if(max<num[i]) max=num[i]; } cout<<max;}
16:三角形判断
#include "iostream"#include "math.h"#include "iomanip"using namespace std;int main(){ int a,b,c; cin>>a>>b>>c; if((a+b)>c&&(a+c)>b&&(b+c)>a) cout<<"yes"; else cout<<"no";}
17:判断闰年
#include "iostream"#include "math.h"#include "iomanip"using namespace std;int main(){ int num; cin>>num; if(num%4!=0||((num%100==0)&&(num%400!=0))||(num%3200==0)) { cout<<"N"; }else{ cout<<"Y"; }}
18:点和正方形的关系
#include "iostream"#include "math.h"#include "iomanip"using namespace std;int main(){ int x,y; cin>>x>>y; if(x>=-1&&x<=1&&y>=-1&&y<=1) cout<<"yes"; else cout<<"no"; return 0;}
19:简单计算器
#include "iostream"using namespace std;/* RuntimeError常见出错的原因可能有以下几种: 1、数组开得太小了,导致访问到了不该访问的内存区域 2、发生除零错误 3、大数组定义在函数内,导致程序栈区耗尽 4、指针用错了,导致访问到不该访问的内存区域 5、还有可能是程序抛出了未接收的异常 */int main(){ int x,y; char c; cin>>x>>y>>c; if(c=='/'&&y==0) { cout<<"Divided by zero!"; return 0;//return 1NOI会runtime error,但是实际上我觉得没有问题 } if(c!='/'&&c!='+'&&c!='-'&&c!='*') { cout<<"Invalid operator!"; return 0; } switch (c) { case '+': cout<<x+y; break; case '-': cout<<x-y; break; case '*': cout<<x*y; break; case '/': cout<<x/y; break; default: break; } return 0;}
20:求一元二次方程的根
#include "iostream"#include "math.h"#include "iomanip"using namespace std;/* sqrt函数有三种形式 double sqrt(double x); float sqrtf(float x); long double sqrtl(long double x); 三种形式的区别只是参数和返回值的精度不同,float精度最低,double较高,long double精度最高 */int main(){ float a,b,c; cin>>a>>b>>c; /*cout<<sizeof(float)<<endl; cout<<sizeof(double)<<endl; cout<<sizeof(b*b-4*a*c); cout<<sizeof(b*b); 4 8 4 4 加减乘除都是float 即使溢出了也还是float 本身不会改变类型的*/ if(b*b==4*a*c) { if(b==0) cout<<fixed<<setprecision(5)<<"x1=x2="<<b/(2*a); else cout<<fixed<<setprecision(5)<<"x1=x2="<<(-b)/(2*a); } else if(b*b>4*a*c) cout<<fixed<<setprecision(5)<<"x1="<<(-b+sqrtf((b*b-4*a*c)))/(2*a)<<";"<<"x2="<<(-b-sqrtf(b*b-4*a*c))/(2*a); else { if(b==0){ cout<<fixed<<setprecision(5)<<"x1="<<b/(2*a)<<"+"<<sqrtf(4*a*c-b*b)/(2*a)<<"i;"<<"x2="<<b/(2*a)<<"-"<<sqrtf(4*a*c-b*b)/(2*a)<<"i"; }else{ cout<<fixed<<setprecision(5)<<"x1="<<-b/(2*a)<<"+"<<sqrtf(4*a*c-b*b)/(2*a)<<"i;"<<"x2="<<-b/(2*a)<<"-"<<sqrtf(4*a*c-b*b)/(2*a)<<"i"; } } return 0;}
21:苹果和虫子2
#include "iostream"#include "math.h"using namespace std;int main(){ int n,x,y; cin>>n>>x>>y; if(y>=0) { if(y<=n*x)//考虑虫子待的时间很长的情况 cout<<n-ceil(y/(float)x); else cout<<"0"; }else//考虑时间为负数的情况 { cout<<n; } return 0;}
0 0
- NOI题解(1.4编程基础之逻辑表达式与条件分支)
- 1.4编程基础之逻辑表达式与条件分支
- 1.4编程基础之逻辑表达式与条件分支----学生出错情况及解决方法汇总
- OpenJudge1.4编程基础之逻辑表达式与条件分支之 03:奇偶数判断
- NOI题解(1.3编程基础之算术表达式与顺序执行)
- NOI题解(1.1编程基础之输入输出)
- NOI题解(1.12编程基础之函数与过程抽象)(待补全)
- NOI题解(1.5编程基础之循环控制)(待补全)
- NOI题解(1.7编程基础之字符串)(待补全)
- NOI题解(1.8编程基础之多维数组)(待补全)
- NOI题解(1.9编程基础之顺序查找)(待补全)
- NOI题解(1.8编程基础之多维数组)(待补全)
- NOI题解(1.10编程基础之简单排序)
- NOI题解(1.2编程基础之变量定义、赋值及转换)
- 正则表达式笔记 4 分支条件 逻辑操作符 |
- 正则表达式笔记1 分支条件 逻辑操作符 |
- 正则表达式笔记 4 分支条件 逻辑操作符 |
- NOI题解(1.6编程基础之一维数组)(待补全)
- leetcode 387. First Unique Character in a String 不同解法
- 动态代理实现日志的写入
- C++11新特性学习笔记
- 集合
- javascript_skill
- NOI题解(1.4编程基础之逻辑表达式与条件分支)
- PHP--环境搭建(PhpStrom2016.2+php5.6)
- IOC加载beans源码解析
- Vijos P1379 字符串的展开(模拟)
- PHP 如何判断记录集为空实例
- Java架构必会几大技术点
- mysql优化
- 03,二进制基础
- 为了caffe(七)做kaggle上的mnist