一首面试题 有 1000 个苹果,10个箱子,怎么把这 1000个苹果放到 10个箱子里面才能让以后无论要多少个苹果,都可以整箱的拿?如何用程序表示出来? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那如果想用JAVA写出程序来表示怎么写? 这好像是微软的一道题吧!!将1000个苹果分别放进10个箱子,如1,2,4,8。。以此类推,最后一个箱子放489个,这样的在1000以内所有的数都可以组合出来!程序如下:public class TenPagApple { public static void main(String args[]) { //每个箱子给苹果数 int []a = new int[10]; a[0] = 1; for(int i=1; i<a.length; i++) { a[i] = a[i-1]*2; } //最后一个箱子数应该是512,这样10个箱子加起来超过1000,所以把多余的减出去,最后一个箱子是489 for(int j=0; j<a.length; j++) { if(j == (a.length-1)) { int sum = 0; for(int k=0; k<a.length; k++) { sum +=a[k]; } a[j] = a[j] - (sum-1000); } System.out.println("第"+(j+1)+"箱苹果数为"+a[j]); } int sum = 0; for(int k=0; k<a.length; k++) { sum +=a[k]; } System.out.println("总苹果数为:" + sum); }}运行结果如下:第1箱苹果数为1第2箱苹果数为2第3箱苹果数为4第4箱苹果数为8第5箱苹果数为16第6箱苹果数为32第7箱苹果数为64第8箱苹果数为128第9箱苹果数为256第10箱苹果数为489总苹果数为:1000 1,2,4,8,16,32,64,128,256,489这样就可以了么.1,2,4,8,16,32,64,128,256这可以表示1-511的所有数的吧?489结合1-511所有的数就可以表示490-1000所有的数.程序的写法: if(n<511) 将n化成2进制数. else 将(n-511)化成2进制数. 再加上489这个箱子里的苹果就是了. good,思路对了就容易,想不到的就得撞墙! 一道java程序题 生成的BMP图片内容为空? ==正则问题== eclipse +wtp 用ant編譯的時候出現jdk1.4 J2SE中的类,哪些是以后工作中经常用的? JDK1.5中的新功能注释,最大的作用是什么呢? 初学没看懂这段代码的意思 数据库中是 100.00,为什么得出的却是 100.0 呢? 是java的bug吗? 请教一个用方法交换值的问题问题 如何把ResultSet中的指针放到指定的位置 用JAVA怎么做类似地图的东西?
将1000个苹果分别放进10个箱子,
如1,2,4,8。。以此类推,最后一个箱子放489个,这样的在1000以内所有的数都可以组合出来!
程序如下:
public class TenPagApple {
public static void main(String args[]) {
//每个箱子给苹果数
int []a = new int[10];
a[0] = 1;
for(int i=1; i<a.length; i++) {
a[i] = a[i-1]*2;
}
//最后一个箱子数应该是512,这样10个箱子加起来超过1000,所以把多余的减出去,最后一个箱子是489
for(int j=0; j<a.length; j++) {
if(j == (a.length-1)) {
int sum = 0;
for(int k=0; k<a.length; k++) {
sum +=a[k];
}
a[j] = a[j] - (sum-1000);
}
System.out.println("第"+(j+1)+"箱苹果数为"+a[j]);
}
int sum = 0;
for(int k=0; k<a.length; k++) {
sum +=a[k];
}
System.out.println("总苹果数为:" + sum);
}
}
运行结果如下:
第1箱苹果数为1
第2箱苹果数为2
第3箱苹果数为4
第4箱苹果数为8
第5箱苹果数为16
第6箱苹果数为32
第7箱苹果数为64
第8箱苹果数为128
第9箱苹果数为256
第10箱苹果数为489
总苹果数为:1000
1,2,4,8,16,32,64,128,256这可以表示1-511的所有数的吧?
489结合1-511所有的数就可以表示490-1000所有的数.
程序的写法: if(n<511) 将n化成2进制数.
else 将(n-511)化成2进制数. 再加上489这个箱子里的苹果就是了.