U.拖拉机比赛
思路:
先计算每个阶层是否存在向下取整或向上取整,计为1
每一段都是前面几段与自身有无加的和
错误原因:
编译错误+语法结构错误
核心代码
if(n*0.1%10 !=0) a[0]=1;
else if(n*0.2 %10 !=0) a[1]=1;
else if(n*0.3 %10 !=0) a[2]=1;
for(int i=1;i<3;i++)
{
a[i]+=a[i-1];
}
ac代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
double n;
cin>>n;
int a[3]={0};
double x=n*0.1;
double y=n*0.2;
double z=n*0.3; //cout<<z-(int)z;
if(x-(int)x !=0) a[0]=1; //cout<<a[0]<<endl;
if(y-(int)y !=0) a[1]=1; //cout<<a[1]<<endl;
if(z-(int)z !=0) a[2]=1; //cout<<a[2]<<endl;
for(int i=1;i<3;i++)
{
a[i]+=a[i-1];
}
cout<<a[0]<<" "<<a[1]<<" "<<a[2];
return 0;
}
T.排队领水
思路:
若a+b小于n,只看b后面的位置
若a+b>n,就比较复杂了
错误代码(80%)
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a,b;
cin>>n>>a>>b;
int ans;
if(a+b<=n) ans=b+1;
else ans=n-a+1;
cout<<ans;
return 0;
}
ac代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a,b;
cin>>n>>a>>b;
int ans;
if(a+b<=n-1) ans=b+1;
else ans=n-a;
cout<<ans;
return 0;
}