首页新闻找找看学习计划

求指教代码C/C++

0
悬赏园豆:30 [已解决问题] 解决于 2016-03-02 23:52

以下是题目:

木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头,需要得到的小段的数目是给定了。当然,我们希望得到的小段越长越好,你的任务是计算能够得到的小段木头的最大长度。

木头长度的单位是cm。原木的长度都是正整数,我们要求切割得到的小段木头的长度也要求是正整数。

Input
第一行是两个正整数N和K(1 <= N <= 1000,1 <= K <= 1000),N是原木的数目,K是需要得到的小段的数目。
接下来的N行,每行有一个1到10000之间的正整数,表示一根原木的长度。

Output
输出能够切割得到的小段的最大长度。如果连1cm长的小段都切不出来,输出"0"。

 

Sample Input
3 7
232
124
456
Sample Output
114
 
 
我的代码:

#include <cstdio>
#include <cmath>
#include <iostream>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <sstream>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;///把木头分成小段,计算出num(num为符合要求的最大的木段长度),若num小于1,输出0,否则输出num
int main()
{
int N,K,a[1000];///N为原木数量,K为需要的小段木头的数量
int num=0,count=0,k=0,p;
scanf("%d%d",&N,&K);
for(int i=0;i<N;i++)
{
scanf("%d",&a[i]);///输出N个原木的长度
}
sort(a,a+N);///从小到大排序
while(count!=K&&num>1)
{num=a[0]-k;
boolen=1;
for(int j=1;j<N;j++)
{
p=a[j]/num;///求每个原木能切长度为num的
count=count+p;
}
k++;
}
if(num<1)
printf("0\n");
else
printf("%d\n",num);
return 0;
}

Akemo的主页 Akemo | 初学一级 | 园豆:110
提问于:2016-01-21 09:21
< >
分享
最佳答案
0

收获园豆:30
[0] | 小虾三级 |园豆:1255 | 2016-01-21 09:44

这个我漏写了,加上去了一样不行,请帮忙看看思路上有没有错

Akemo | 园豆:110 (初学一级) | 2016-01-21 13:22

@Akemo: 把你完整的代码,再显示一次。

[0] | 园豆:1255 (小虾三级) | 2016-01-21 13:26

@[0]:

#include <cstdio>
#include <cmath>
#include <iostream>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <sstream>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;///把木头分成小段,计算出num(num为符合要求的最大的木段长度),若num小于1,输出0,否则输出num
int main()
{
int N,K,a[1000];///N为原木数量,K为需要的小段木头的数量
int num=0,count=0,k=0,p;
int boolen;
scanf("%d%d",&N,&K);
for(int i=0;i<N;i++)
{
scanf("%d",&a[i]);///输出N个原木的长度
}
sort(a,a+N);///从小到大排序
while(count!=K)
{num=a[0]-k;
boolen=1;
for(int j=1;j<N;j++)
{
p=a[j]/num;///求每个原木能切长度为num的
count=count+p;
}
k++;
}
if(num<1)
printf("0\n");
else
printf("%d\n",num);
return 0;
}

Akemo | 园豆:110 (初学一级) | 2016-01-21 13:36

@Akemo: 

[0] | 园豆:1255 (小虾三级) | 2016-01-21 13:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册