C/C++ 木材加工
生活随笔
收集整理的这篇文章主要介绍了
C/C++ 木材加工
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
题目描述
木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头,需要得到的小段的数目是给定了。当然,我们希望得到的小段越长越好,你的任务是计算能够得到的小段木头的最大长度。木头长度的单位是厘米。原木的长度都是正整数,我们要求切割得到的小段木头的长度也要求是正整数。
输入
第一行是两个正整数N和K(1 ≤ N ≤ 10000, 1 ≤ K ≤ 10000),N是原木的数目,K是需要得到的小段的数目。
接下来的N行,每行有一个1到10000之间的正整数,表示一根原木的长度。
输出
输出能够切割得到的小段的最大长度。如果连1厘米长的小段都切不出来,输出"0"。
样例输入
3 7 232 124 456样例输出
114 #include<iostream> #include<algorithm> using namespace std; int main() {int n,m,a[100],i,j,t=0,x,y;cin>>n>>m;for(i=0;i<n;i++){ cin>>a[i]; }sort(a,a+i);x=a[i-1];for(j=0;j<i;j++){y=a[j];while(y>=0){y-=x;if(y>=0)t++;}if(t>=m){ printf("%d\n",x); break; }if(j+1==i){ j=-1;x--;t=0;}if(x==0){printf("%d\n",0); break;}} }#include<stdio.h> int main(){int n,k,t=10000,a[1005],i,s=0;scanf("%d%d",&n,&k);for(i=0;i<n;i++){scanf("%d",&a[i]);if(a[i]<t){t=a[i];}}while(1){for(s=0,i=0;i<n;i++){s+=a[i]/t;} if(s==k) break;else t--;} printf("%d\n",t); }
总结
以上是生活随笔为你收集整理的C/C++ 木材加工的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 十进制如何转化成二进制c语言,c语言怎么
- 下一篇: C++四则运算字符串解析(附动图以及动图