1.公交车乘客
一个公交车经过n个站点,乘客从前门上车,从后门下车。现在统计了在第i个站,下车人数a[i],以及上车人数b[i]。问公交车运行时候车上最多有多少乘客
输入 第一行读入一个整数n(1<=n<=100),表示有n个站点
接下来n行,每行两个数值,分别表示在第i个站点下车人数和上车人数
样例输入 4
0 3
2 5
4 2
4 0
输出 每组输出车上最多的乘客数目
样例输出 6
#include <stdio.h>
int main(){
int a,m,n,sum,sub;
scanf("%d",&a);
sub=0;
sum=0;
for (int i =0;i<a;i++)
{
scanf("%d%d",&m,&n);
sub=sub+n-m; //当前车上人数=上车人数-下车人数
if(sub>sum){ //最多车上人数
sum=sub;
}
}
printf("%d",sum);
}
2.分苹果
果园里有堆苹果,N(1<N<9)只熊来分。第一只熊把这堆苹果平均分为N份,多了一个,它把多的一个扔了,拿走了一份。第二只熊把剩下的苹果又平均分成N份,又多了一个,它同样把多的一个扔了,拿走了一份,第三、第四直到第N只熊都是这么做的,问果园里原来最少有多少个苹果?
输入 输入1个整数,表示熊的个数。它的值大于1并且小于9。
样例输入 5
输出 为1个数字,表示果园里原来有的苹果个数。
样例输出 3121
# 暴力法,设有i(i>n)个苹果,从n+1开始模拟。设当前苹果有c个,n只熊来分,满足分配条件则更新c、n,直到
# 所有熊都分配成功,即n=0,输出i即可;否则i++.
def sharing(n):
i = n+1
while True:
c = i
b = n
while b>0 and c%n==1:
c=c-1-(c-1)//n
b-=1
if b>=1:
i+=1
else:
return i
print(sharing(5))
待更