[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.
不见不散!

京公网安备 11010502036488号