您的位置:首页 > 其它

【用脚趾头解决NOIP】(3)NOIP2010普及组阅读程序写运行结果

2016-09-06 12:26 423 查看
(您的好友【老司机】已上线)

(您的好友【老司机】开启了群飙车,快来啊)

NOIP2010

第一题:交换

题目源代码:

#include<iostream>
using namespace std;
void swap(int &a,int &b) {
int t;
t=a;
a=b;
b=t;
}
int main() {
int a1,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(x<a2)
if(x<a1)
cout<<x<<' '<<a1<<' '<<a2<<' '<<a3<<endl;     else
cout<<a1<<' '<<x<<' '<<a2<<' '<<a3<<endl;     else
if(x<a3)
cout<<a1<<' '<<a2<<' '<<x<<' '<<a3<<endl;     else
cout<<a1<<' '<<a2<<' '<<a3<<' '<<x<<endl;
return 0;
}


输入数据:

91 2 20
77


思路分析:

这道题的整个流程如下:



那么这题就不需要多讲了吧~

本题答案: 2 20 77 91

第二题:回文数

题目源代码:

#include<iostream>
using namespace std;
int rSum(int j) {
int sum=0;
while(j!=0)     {
sum=sum*10+(j%10);
j=j/10;
}
return sum;
}
int main() {
int n,m,i;
cin>>n>>m;
for(i=n;i<m;i++)
if(i==rSum(i))
cout<<i<<' ';
return 0;
}


输入数据:

90 120


思路分析:

这道题看上去就觉得不对!

我们仔细观察一下这串代码,然后代一个数进去(我们拿90这个数举栗)

如果根据这个代码走一遍流程,我们会得到…..

该数倒过来的数(如:90倒过来就是09,0被省略)

那么这道题就是判断一个数是否是一个回文数(即正反数一样的数,如11)

那么在90~120以内的回文数总共有三个:

99 , 101 , 111

本题答案: 99,101,111

第三题:最大与次大

题目源代码:

#include<iostream>
#include<string>
using namespace std;
int main() {
string s;
char m1,m2;
int i;
getline(cin,s);
m1=' ';
m2=' ';
for(i=0;i<s.length();i++)
if(s[i]>m1)
{
m2=m1;
m1=s[i];
}
else  if(s[i]>m2)
m2=s[i];
cout<<int(m1)<<' '<<int(m2)<<endl;
return 0;
}




输入数据:

Expo 2010 Shanghai China


思路描述:

这里我们发现,循环指令正在找一个最大值和次大值,即输入字符串中的ascll最大值和次大值。那么输出最大值和次大值就可以了。

本题答案: 120(‘n’) 112(‘h’)

第四题:是or不是?

题目源代码:

#include<iostream>
using namespace std;
const int NUM=5;
int r(int n) {
int i;
if(n<=NUM)
return n;
for(i=1;i<=NUM;i++)
if(r(n-i)<0)
return i;
return -1;
}
int main() {
int n;
cin>>n;
cout<<r(n)<<endl;
return 0;
}


输入数据<1>:

4


输入数据<2>:

16


思路描述:

递归代码中,有一句:
for(i=1;i<=NUM;i++)
,得到了我们要枚举每一个i。

我们的操作如下:

1.如果当前用于递归的数<5,则返回这个数。

2.对于每一次的递归,将i从1~5枚举,我们每一次如果都找不到一个数(n-i),使得这个数的返回值为-1,那么就返回-1。如果找到任何一个数,就返回i。

根据上面的操作走一遍,很容易就得出答案。

本题答案:

<1>1

<2>4
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐