7-5 装箱问题(25 分) 假设有N项物品,大小分别为s 1 、s 2 、…、s i 、…、s N ,其中s i 为满足1≤s i ≤100的整数。要把这些物品装
2017-12-07 15:46
1086 查看
#include <stdio.h>
int main (void)
{
int N,a[100],i,b[100]= {0},j,flag,s[100];
int su=1;
scanf("%d",&N);
for(i=0; i<N; i++)
{
scanf("%d",&a[i]);
s[i]=a[i];
}
b[0]=0;
for(i=1; i<N; i++)
{
for(j=0; j<i; j++)
{
flag=0;
if(a[i]+a[j]<=100)
{
a[j]=a[i]+a[j];
a[i]=0;
b[i]=j;
flag=1;
break;
}
}
if(flag==0)
{
b[j]=i;
}
}
int max=0;
for(i=1; i<N; i++)
{
if(b[i]>b[max])
{
max=i;
b[max]=b[i];
}
}
for(i=0; i<N; i++)
{
printf("%d %d",s[i],b[i]+1);
printf("\n");
}
printf("%d",b[max]+1);
return 0;
}
int main (void)
{
int N,a[100],i,b[100]= {0},j,flag,s[100];
int su=1;
scanf("%d",&N);
for(i=0; i<N; i++)
{
scanf("%d",&a[i]);
s[i]=a[i];
}
b[0]=0;
for(i=1; i<N; i++)
{
for(j=0; j<i; j++)
{
flag=0;
if(a[i]+a[j]<=100)
{
a[j]=a[i]+a[j];
a[i]=0;
b[i]=j;
flag=1;
break;
}
}
if(flag==0)
{
b[j]=i;
}
}
int max=0;
for(i=1; i<N; i++)
{
if(b[i]>b[max])
{
max=i;
b[max]=b[i];
}
}
for(i=0; i<N; i++)
{
printf("%d %d",s[i],b[i]+1);
printf("\n");
}
printf("%d",b[max]+1);
return 0;
}
相关文章推荐
- Problem Description 输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。 Input 输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。 Output 对于每组
- 25.求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。AC
- C++输入n(n<100)个整数,找出其中最大的数,将它与最前面的数交换后输出这些数
- 背包问题-堆栈-找出其中一组解(总体积为T,n件物品体积分别是w1,w2,...,w2n,找出若干件恰好装满背包)
- 输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数.输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,
- 简单问题:sizeof(char型数组)为数组大小,而不是4, 为什么? 100!
- 输入两个整数序列。其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序。 为了简单起见,我们假设push序列的任意两个整数都是不相等的
- 5.编写一个程序,有两个类,其中类MAX中具有两个方法,方法名都是max,一个方法能够比较两个数的大小,另外一个方法能够比较三个数的大小。在另外一个类中创建对象,调用这两个方法,分别输出两组数:2、6
- JS数组比较大小,发现其中问题。
- 物品装箱问题
- 创建一个模块calculator.py,完成任意两个数的加(add)、减(sub)、乘(mult)、除(div)运算;导入该模块,分别调用其中的函数,完成如下操作: 1、25+56 2、86-68 3
- 习题 8.16 输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,依次存放到一数组a中。统计共有多少个整数,并输出这些数。
- (水仙花数问题)假设100 - 1000这个范围内求出个位的立方 + 十位的立方 + 百位的立方 == 数字本身 假设 123 == 1^3 + 2^3 + 3^3;
- SSH+Oracle整个问题9 关于BigDecimal 和Int整数比较大小的问题
- 查找程序中的错误(平凡的程序,不平凡的问题) 4.不定义第三个变量,互换两个变量的值 5.char 类型转换 6.输出 10~100 之间的随机整数
- 计算第K个能表示(2^i * 3^j * 5^k)的正整数(i,j,k为整数)?其前7个满足此条件的数分别是1,2,3,4,5,6,8
- 编程珠玑: 12章 取样问题 12.3设计空间,程序的输入包含两个整数m和n,其中m<n。输出是0~n-1范围内m个随机整数的有序列表,不允许重复。 解法2-------解题总结
- PAT 1067. Sort with Swap(0,*) (25) 整数0到整数N-1的交换排序问题
- 输入两个整数序列。其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序。 为了简单起见,我们假设push序列的任意两个整数都是不相等的
- JAVA问题总结之23--生成一个长度为100的随机整数list