今天做题也诸多不顺,后面的题好像越来越难了。
“启蒙练习27回文数”这道题开始我想的是把这个整数里面每一位数都分离开存到一个数组里,然后根据规律判断它的第i位和第n-i位是否相等。但是这么做输出的数据不对。然后我重新换了种思路,回文数即为左右对称的数,即从左往右看和从右往左看都一样,所以可以将输入的数倒置,若倒置前后数相等则为回文数。
“西湖游船”要求计算船所承受的最大重量。根据情况,用一个数组记录0或1,0为在船下,1为在船上。用max记录船上承受的最大重量,若max大于船的最大承重,则输出“Oh,My God!”,若小于等于最大承重,则输出max。附上代码:
#include
#include<stdio.h>
#include
#include
#include
#include
#include
using namespace std;
int main()
{
int n,m,w,s,max,k;
int c[1000],a[501];
cin>>n>>m>>w;
s=0;max=0;
memset(a,0,sizeof(a));
for(int i=1;i<=n;i++)
cin>>c[i];
for(int i=1;i<=m;i++)
{
cin>>k;
if(a[k]==0)
{
s+=c[k];
a[k]=1;
}
else
{
s-=c[k];
a[k]=0;
}
if(s>max)
max=s;
}
if(max>w)
cout<<“Oh, My God!”;
else
cout<<max;
return 0;
}
2019年1月31日学习日记
最新推荐文章于 2022-07-12 15:49:59 发布