1:苹果和虫子
题目来源:http://pkuic.openjudge.cn/hw02/1/
能列出数学等式就能求解,非常简单。
#include<iostream>
using namespace std;
int main()
{
int n,x,y;//n apple, x apple/hour, eat y hour
cin>>n>>x>>y;
if(y%x==0)
cout<<n-y/x<<endl;
else
cout<<n-y/x-1<<endl;
return 0;
}
2:大象喝水
题目来源:http://pkuic.openjudge.cn/hw02/2/
#include<iostream>
using namespace std;
#define Pi 3.14159
#define need 20000 //大象需要喝的水
int main()
{
int h,r;// the height and radius of bucket
cin>>h>>r;
double volume=Pi * r * r * h;
cout<<int(need/volume)+1<<endl;
return 0;
}
3:最高的分数
题目来源:http://pkuic.openjudge.cn/hw02/3/
#include<iostream>
using namespace std;
int main()
{
int n;//the number of score
cin>>n;
int score[100];//student's score
for(int i=0;i<n;i++)
cin>>score[i];
//scan array from begin to end, reserve the biggest score
int Max=0;
for(int i=0;i<n;i++)
{
if(score[i]>Max)
Max=score[i];
}
cout<<Max;
return 0;
}
4:最大奇数与最小偶数之差的绝对值
题目来源:http://pkuic.openjudge.cn/hw02/4/
通过遍历数组,先把最大奇数和最小偶数找出来,然后求差的绝对值即可。
#include<iostream>
#include<cmath>
#define n 6
#define inf 0x7ffffff
using namespace std;
/*int Abs(int a,int b)
{
if(a>b)
return a-b;
else
return b-a;
}*/
int main()
{
int a[n];
for(int i=0;i<n;i++)
cin>>a[i];
int oddMax=0;
int evenMin=inf;
for(int i=0;i<n;i++)
{
if(a[i]%2==0)
evenMin=(a[i]<evenMin)?a[i]:evenMin;
else
oddMax=(a[i]>oddMax)?a[i]:oddMax;
}
cout<<abs(evenMin-oddMax);
return 0;
}
5:分离整数的各个数位
题目来源:http://pkuic.openjudge.cn/hw02/5/
法一:通过取余,可以将一个数的末位分离出来。对一个数从个位开始,一直分离到最高位,每一位到保存在数组中。因为要求是从高位输出,因此数组逆序输出即可。
法二:通过递归实现,见下面第二个代码。
//方法一
#include<iostream>
using namespace std;
#define n 3
int main()
{
int num;
cin>>num;
int arr[n],tmp=num;
int j=0;//arry's index
while(tmp>0){
arr[j]=tmp%10; //不能直接用j++,不知道为什么
tmp=tmp/10;
j++;
}
for(int i=j-1;i>0;i--)
cout<<arr[i]<<endl;
cout<<arr[0];
return 0;
}
方法二
#include<iostream>
using namespace std;
void seperate(int num)
{
int tmp=num;
if(tmp!=0)//这不能用while
{
seperate(tmp/10);
cout<<tmp%10<<endl;
}
}
int main()
{
int number;
cin>>number;
seperate(number);
return 0;
}
上面的是递归实现的判定结果,下面是普通循环。大致可以看出,用递归能够使代码变得比较简短,但是运行时间会增加。这也是递归的一个普遍问题,设置不好还可能成为死循环。