有n(n<=100)条木棍,每条长度是不超过1 000 000的整数,现将他们截成长度相等的小段。要求:每根长度都不许浪费,且截成的小段要最长。
问题:求截后每段小木棍的最大长度?一共截成了多少段小木棍?
【输入】
第一行,n,表示长木棍的条数。
以下n个用空格隔开的整数,表示长木棍的长度。
【输出】
第一行,截取的小木棍的最大长度。
第二行,截成的小木棍一共有多少段。
【样例输入输出】
b.in | b.out |
4 18 12 24 30 |
6 14 |
代码实现:
#include <stdio.h>
int knap(int i,int j) //辗转相除法求最大公约数
{
int a,b,c;
if(i>j)
{a=i;b=j;}
else{a=j;b=i;}
c=a%b;
while(c!=0)