一个简单的面试题,求最简单效率最快的方法.

jtomcat_jack 2006-12-29 03:31:44
4行3列的数组 求个行的和,各列的和,全部数组的总和.要代码最少方法效率最高.
...全文
691 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
SZleoWang 2007-04-24
  • 打赏
  • 举报
回复
/**4行3列的数组
*求个行的和,
*各列的和,全部数组的总和
**/

public class countWords {

public static void main(String[] args) {
int[][] test={{1,2,3},{2,3,4},{2,4,5},{6,7,8}};
int[] rowCount=new int[4],hcount=new int[3];
for(int i=0;i<4;i++){
int[]part=test[i];
for(int j=0;j<part.length;j++){
rowCount[i]+=part[j];
hcount[j]+=part[j];
}
}
int allCount_r=0,allCount_h=0,allCount=0;
for(int i=0;i<rowCount.length;i++){
System.out.println("第"+(i+1)+"行"+" "+rowCount[i]);
allCount_r+=rowCount[i];
}
System.out.println("行的总和为 "+allCount_r);
for(int i=0;i<hcount.length;i++){
System.out.println("第"+(i+1)+"列"+" "+hcount[i]);
allCount_h+=hcount[i];
}
System.out.println("列的总和为 "+allCount_r);
allCount=allCount_r+allCount_h;
System.out.println("总和为 "+allCount);
}



}
xiaofengsuilu 2006-12-30
  • 打赏
  • 举报
回复
C_bcb
少一个循环,呵呵,有趣
biaoflying 2006-12-30
  • 打赏
  • 举报
回复
public class MultiArray
{
public static void main(String[] args)
{
int[][] array=new int[][]{
{1,2,5},
{1,3,34},
{4,6,2},
{3,4,1}};
System.out.println(array.length);
System.out.println(array[0].length);
int sum=0;
int rowSum=0;
int colSum=0;
for(int i=0;i<array.length;i++)
{
for(int j=0;j<array[i].length;j++)
{
rowSum+=array[i][j];
}
System.out.println("rowSum= "+rowSum+" 行数: "+i);
sum+=rowSum;
rowSum=0;
}
System.out.println("总和: "+sum);
for(int i=0;i<array[0].length;i++)
{
for(int j=0;j<array.length;j++)
{
colSum+=array[j][i];
}
System.out.println("colSum= "+colSum+" 列数:"+i);
colSum=0;
}
}
}
过期码农 2006-12-30
  • 打赏
  • 举报
回复
int a[4][3];
int line[4];
int col[3];
int sum;
for(int i=0;i<4;i++)
{
line[i]=a[i][1]+a[i][2]+a[i][3];
}
for(int j=0;j<3;j++)
{
col[i]=a[0][j]+a[1][j]+a[2][j]+a[3][j];
}
sum = col[0]+col[1]+col[2];
xiaofengsuilu 2006-12-29
  • 打赏
  • 举报
回复
同意shine333
wwwlike 2006-12-29
  • 打赏
  • 举报
回复
我也有这感觉
sclzmbie 2006-12-29
  • 打赏
  • 举报
回复
怎么觉得是来骗代码的?
zjy0009 2006-12-29
  • 打赏
  • 举报
回复
public class countWords {

public static void main(String[] args) {
int[][] test={{1,2,3},{2,3,4},{2,4,5},{6,7,8}};
int[] rowCount=new int[4],hcount=new int[3];
for(int i=0;i<4;i++){
int[]part=test[i];
for(int j=0;j<part.length;j++){
rowCount[i]+=part[j];
hcount[j]+=part[j];
}
}
int allCount=0;
for(int i=0;i<rowCount.length;i++){
System.out.println("第"+(i+1)+"行"+" "+rowCount[i]);
allCount+=rowCount[i];
}
System.out.println("总和为 "+allCount);
for(int i=0;i<hcount.length;i++){
System.out.println("第"+(i+1)+"列"+" "+hcount[i]);
}
}

}
shine333 2006-12-29
  • 打赏
  • 举报
回复
for (int j = 0; j < array[i].length; j++) {
又错了
freelyl 2006-12-29
  • 打赏
  • 举报
回复
没什么最快可言吧......最少每个元素要走一次...
shine333 2006-12-29
  • 打赏
  • 举报
回复
int[][] array = new int[][] {
{2, 9, 4},
{7, 5, 3},
{6, 1, 8}
};

int[] rowSum = new int[array.length];
int[] colSum = new int[array[0].length];
int sum = 0;

for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
rowSum[i] += array[i][j];
colSum[j] += array[i][j];
}
sum += rowSum[i];
System.out.println("第" + (i + 1) + "行的和:" + rowSum[i]);
}

for (int i = 0; i < colSum.length; i++) {
System.out.println("第" + (i + 1) + "列的和:" + colSum[i]);
}

System.out.println("总和:" + sum);
}
lookhang 2006-12-29
  • 打赏
  • 举报
回复
想了半天,还是觉得要遍历数组···还有线性代数里面好像有公式吧 记不清楚了我····
shine333 2006-12-29
  • 打赏
  • 举报
回复
BTW,打印在for都走完了 再打印一下,不过行总数可以在第一个for里面先打
shine333 2006-12-29
  • 打赏
  • 举报
回复
举例子。即使你Java 0基础,如果有悟性,应该也看懂了。

System.out.println("总和:" + sum);

System.out.println("第" + (i + 1) + "行的和:" + rowSum[i]);

悟不出来,还是回去修炼一下,否则没好处的
jtomcat_jack 2006-12-29
  • 打赏
  • 举报
回复
能打印吗?帮个忙
shine333 2006-12-29
  • 打赏
  • 举报
回复
j < array[i].length
jtomcat_jack 2006-12-29
  • 打赏
  • 举报
回复
你把你的代码好好再看看,
shine333 2006-12-29
  • 打赏
  • 举报
回复
System.out.println("各行的和,各列的和,总和");

这下对了吧!
jtomcat_jack 2006-12-29
  • 打赏
  • 举报
回复
理论说的太多没有用.你把代码打出来就行
jicken_woo 2006-12-29
  • 打赏
  • 举报
回复
事情可以变得尽可能简单,但不能更加简单!!
加载更多回复(4)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧