蓝桥杯“刷题统计”一题题目如下:
依照测试用例所以输出了i-1,但我不理解为什么是i-1
还有就是测试用例一直有4个没过,不知道问题在哪里
完整代码如下
#include
#include
int main(int argc, char *argv[])
{
long int a,b,n,i,done=0;
scanf("%ld",&a);
scanf("%ld",&b);
scanf("%ld",&n);
for(i=1;doneif((i%7==0)||(i%7==6)){
done+=b;
}
else{
done+=a;
}
}
printf("%ld",i-1);
// 请在此输入您的代码
return 0;
}
因为done累加大于n时,你还会继续循环,从而i多加了1。当done<n不成立时才结束循环。建议改为while循环
注意题目中条件,a、b、n的有效范围是小于10的18次方,所以都应该定义为long long型才可以。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long long a,b,n,i,done=0;
scanf("%lld",&a);
scanf("%lld",&b);
scanf("%lld",&n);
for(i=1;done<n;i++){
if((i%7==0)||(i%7==6)){
done+=b;
}
else{
done+=a;
}
}
printf("%lld",i-1);
return 0;
}
1.首先是python的scipy对应的线性规划库不可以以二维数组作为参数,cvxpy的决策变量也最高为二维
2.cvxpy库最好还是安装37版本,如何建立多环境并安装包在我的另一篇博客有介绍
3.cvxpy,一定要用resluts=prob.solve(solver=cp.CPLEX),另外那个GLPK_MI别用
我也看不懂那个求解器好点