要篮子里有不少于 n 块糖果,幼儿园的所有 n 个小朋友(包括你自己)都从篮子中拿走恰好一块糖,直到篮子里的糖数量少于 n 块。此时篮子里剩余的糖果均归你所有——这些糖果是作为你搬糖果的奖励。
- 这个程序的思路是通过判断l/n和r/n是否相等来确定是否能够拿到奖励。如果l/n和r/n相等,说明在篮子里有不少于n块糖果,可以进行分糖。此时输出r%n,表示剩余的糖果数就是作为奖励的糖果数量。
- 如果l/n和r/n不相等,说明无法拿到奖励,此时输出n-1,表示无法得到奖励。
- 找不到规律
- 这个程序的思路是通过判断l/n和r/n是否相等来确定是否能够拿到奖励。如果l/n和r/n相等,说明在篮子里有不少于n块糖果,可以进行分糖。此时输出r%n,表示剩余的糖果数就是作为奖励的糖果数量。
- 如果l/n和r/n不相等,说明无法拿到奖励,此时输出n-1,表示无法得到奖励
#include<iostream>
#include<cstdio>
using namespace std;
int n,l,r;
int main(){
cin>>n>>l>>r;
if(l/n==r/n){
cout<<r%n;
}
else {
cout<<n-1;
}
return 0;
}
要理解题目,绕出题目意思
———————————————————————————————————————————————————————————————————————————————————————
连续 m 个刺痛值的和的最小值是多少
- 首先初始化一个变量min为一个较大的值199999,用来存放和的最小值。
- 两层循环,第一层循环遍历表示m长度的数组有几个,就是n-m+1,内层循环计算长度为m的子数组的和,并更新min的值。要及时清零
- 最后输出min即为子数组和的最小值。
- m长度的数组有几个的规律找不出来
找最小值
- 首先初始化一个变量min为一个较大的值199999,用来存放和的最小值。
- 两层循环,第一层循环遍历表示m长度的数组有几个,就是n-m+1,内层循环计算长度为m的子数组的和,并更新min的值。
- 及时把第二个循环中的sum赋0清空;
- 最后输出min即为子数组和的最小值。
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int n,m;
scanf("%d %d",&n,&m);
int a[110000],sum=0;
int min=199999;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n-m+1;i++){
for(int j=1;j<=m;j++){
sum+=a[i+j-1];
}
if(sum<min){
min=sum;
}
sum=0;
}
cout<<min;
return 0;
}
x
- x
- x
- x
- x
- x
- x
$
- x
- x
- x
$
- x
- x
- x
x
x
- x
- x
- x
- x
- x
- x
$
- x
- x
- x
$
- x
- x
- x
x
x
- x
- x
- x
- x
- x
- x
$
- x
- x
- x
$
- x
- x
- x
x
x
- x
- x
- x
- x
- x
- x
$
- x
- x
- x
$
- x
- x
- x
x
x
- x
- x
- x
- x
- x
- x
$
- x
- x
- x
$
- x
- x
- x
x
x
- x
- x
- x
- x
- x
- x
$
- x
- x
- x
$
- x
- x
- x
x
x
- x
- x
- x
- x
- x
- x
$
- x
- x
- x
$
- x
- x
- x
x