[COCI2017-2018#5] Olivander:
又是COCI的一道水题(orz)
这道题的思路很简单(只要英语足够好就行)
思路:
1,把数字排一下序
2,一对一对的判断看是否适合
3,只要有不行的就跳出去输出NE
4,输出DA+结束
AC Code:
#include <iostream> #include <algorithm>//头文件 using namespace std;//常规 int main() { int a[121],b[121];//定义 int n; cin>>n; for(int i=1;i<=n;i++) cin>>a[i];//循环输入魔杖的长度 for(int i=1;i<=n;i++) cin>>b[i];//循环输入盒子的长度 sort(a+1,a+n+1); sort(b+1,b+n+1);//把两个都排好序 for(int i=n;i>=1;i--) { if(a[i]<=b[i])//一一判断 continue;//如果可以就继续 else//如果不行的话 { cout<<"NE";//就输出NE return 0;//直接结束 } } cout<<"DA";//输出可以(DA) return 0;//结束 }
请大家勿抄题解
AT1428:
首先讲一讲思路吧:
1,把这三个数放入数组输入
2,把三个数按从小到大排序
3,如果最小的数等于最大的数,就证明三个数都相等,就输出任意一个数
4,判断最小的数和其次小的数是否相等,再判断最大的数和其次大的数是否相等,如果满足就输出另外一个数。
注意事项:
1,要sort到第四个元素(要+1)
2,一定要换行
3,急时return 0;
代码:
#include <bits/stdc++.h>//万能头文件 using namespace std;//常规 int main()//主函数 { int a[4];//定义 cin>>a[1]>>a[2]>>a[3];//输入 sort(a+1,a+4);//排序(按从小到大排序) if(a[1]==a[3])//判断三个数是否都相等 { cout<<a[1]<<endl;输出随意一个数 return 0;//结束 } if(a[1]==a[2])//判断有没有两个数是相等 { cout<<a[3]<<endl;//输出另一个数 return 0;//结束 } if(a[2]==a[3])//判断有没有两个数是相等 { cout<<a[1]<<endl;//输出另一个数 return 0;//结束 } return 0;//结束 }
希望大家能从这篇题解中学到知识,谢谢!
AT2685:
这道题不难所以不毕紧张。
基本思路:
第一步:求出首字母。
第二部:求出除去首字母和末子母之后字符串的长度,直接将长度减二即可。
第三部:求出末子母。
直接上代码:
#include <iostream>//头文件 using namespace std; int main()//主函数 { string a;//定义一个字符串 cin>>a;//输入字符串 cout<<a[0]<<a.length()-2<<a[a.length()-1]<<endl;//先输出首字母,在输出除去首字母和末子母之后字符串的长度,后输出末字母。一定要还行。 return 0;//华华丽丽的结束 }
最后讲一下.length()的用法吧。
用途:求出字符串长度
用法:在.length()前加上字符串名称即可。
其他:
每计算一次length都要花一次时间,所以最好在前面定义一下比如说:int la=a.length()或int lb=b.length()等。这样可以减少运行时间。
That's All.
不见不散!