noip阅读程序题归纳总结.docx
《noip阅读程序题归纳总结.docx》由会员分享,可在线阅读,更多相关《noip阅读程序题归纳总结.docx(24页珍藏版)》请在冰豆网上搜索。
noip阅读程序题归纳总结
一、
题目:
#include
usingnamespacestd;
voidswap(int&a,int&b)
{
intt;
t=a;
a=b;
b=t;
}
intmain()
{
inta1,a2,a3,x;
cin>>a1>>a2>>a3;
if(a1>a2)
swap(a1,a2);
if(a2>a3)
swap(a2,a3);
if(a1>a2)
swap(a1,a2);
cin>>x;
if(xif(xcout<else
cout<else
if(xcout<else
cout<return0;
}
输入:
91220
77
输出:
答案:
2207791
吐槽:
那个函数很明显是交换,先从小到大排序一遍。
再插入一个数。
其实就是把四个数排序。
年份:
2010
二、
题目:
#include
usingnamespacestd;
intrSum(intj)
{
intsum=0;
while(j!
=0)
{
sum=sum*10+(j%10);
j=j/10;
}
returnsum;
}
intmain()
{
intn,m,i;
cin>>n>>m;
for(i=n;iif(i==rSum(i))
cout<
return0;
}
输入:
90120
输出:
__99101111_____________
答案:
99101111
吐槽:
在这个区间中寻找翻转后等于自己的数
年份:
2010
三、
题目:
#include
#include
usingnamespacestd;
intmain()
{
strings;
charm1,m2;
inti;
getline(cin,s);
m1='';
m2='';
for(i=0;iif(s[i]>m1)
{
m2=m1;
m1=s[i];
}
elseif(s[i]>m2)
m2=s[i];
cout<return0;
}
输入:
Expo2010ShanghaiChina
输出:
______________
答案:
120112
吐槽:
输出ASCII码值最大的两个字母的ASCII码值
年份:
2010
四、
题目:
#include
usingnamespacestd;
constintNUM=5;
intr(intn)
{
inti;
if(n<=NUM)
returnn;
for(i=1;i<=NUM;i++)
if(r(n-i)<0)
returni;
return-1;
}
intmain()
{
intn;
cin>>n;
cout<return0;
}
(1)输入:
7
输出:
1(4分)
(2)输入:
16
输出:
4(4分)
答案:
1
4
吐槽:
从n=1开始往上,返回值的规律是:
12345-112345-112345…………很容易就可以推出答案。
年份:
2010
五、
题目:
#include
usingnamespacestd;
intmain()
{
inti,n,m,ans;
cin>>n>>m;
i=n;
ans=0;
while(i<=m){
ans+=i;
i++;
}
cout<return0;
}
输入:
1020
输出:
_________
答案:
165
吐槽:
就是等差数列,从n加到m
年份:
2011
六、
题目:
#include
#include
usingnamespacestd;
intmain()
{
stringmap="2223334445556667778889999";
stringtel;
inti;
cin>>tel;
for(i=0;iif((tel[i]>='0')&&(tel[i]<='9'))
cout<elseif((tel[i]>='A')&&(tel[i]<='Z'))
cout<