| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1060 人关注过本帖
标题:求矩阵数字最大和
只看楼主 加入收藏
baobao88
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-12-11
收藏
 问题点数:0 回复次数:8 
求矩阵数字最大和
恳请大牛帮忙:
 要怎么求一个数字矩阵的最大数字和,如下面:
输入一个数表示矩阵的行数和列数:如N,则这个矩阵有N*N个数.
例如:N=2
任意输入2*2个数:
1 2
5 3
要求输出列下标不同的数字的最大和,例如上面的1+3;2+5;
答案是7;
再如N=3时;
2 4 7
5 3 2
1 7 6
则从2+3+6;2+2+7;
7+3+1;7+5+7;4+5+6;
4+2+1中选出的最大和为7+5+7;
则输出19。
要怎么实现优化算法??
能编个程序说明吗??
望尽快得到大牛的答复,谢谢。

[[it] 本帖最后由 baobao88 于 2008-12-11 16:08 编辑 [/it]]
搜索更多相关主题的帖子: 矩阵 数字 
2008-12-11 16:00
guoming1232006
Rank: 2
等 级:新手上路
威 望:4
帖 子:438
专家分:0
注 册:2008-11-20
收藏
得分:0 
LZ,我没看懂题目的意思的。
再如N=3时;
2 4 7
5 3 7
1 7 6
则从2+2+6;2+2+7;           /*为啥有两个2?*/
7+3+1;7+5+7;4+5+6;
4+2+1;7+3+1;7+5+7中选出的最大和为7+5+7;           /*这里对大的不是7+7+7么?*/
则输出19。

寡人有疾,寡人好色......
2008-12-11 16:08
baobao88
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-12-11
收藏
得分:0 
不好意思,刚才没有编辑好。
2008-12-11 16:11
baobao88
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-12-11
收藏
得分:0 
列下标不能相同。现在编辑好了,恳请……
2008-12-11 16:14
guoming1232006
Rank: 2
等 级:新手上路
威 望:4
帖 子:438
专家分:0
注 册:2008-11-20
收藏
得分:0 
回复 第4楼 baobao88 的帖子
下标不能相同?还是不太明白,
是不是要求每行之中的最大数之和?

寡人有疾,寡人好色......
2008-12-11 16:45
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
看了题目,应该说的是N*N的矩阵里求N个不同行且不同列的数和最大值。

倚天照海花无数,流水高山心自知。
2008-12-11 19:29
xingguang11
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-12-11
收藏
得分:0 
关于求矩阵数字最大和
[font=楷体_GB2312]本人看到该帖后,编了一个程序,不知是否符合题意 ,现呈现于下:
#include <stdio.h>
#define N 3
#define K 6
main()
{ int i,j,m=0,sum,k,max,b[K],a[2*N-1][2*N-1];
 for(i=0;i<N;i++)
 for(j=0;j<N;j++)
   scanf("%d",&a[i][j]);
for(i=0;i<N;i++)
  for(j=N;j<2*N-1;j++)
    a[i][j]=a[i][j-N];
    for(i=0;i<N;i++)
    { sum=0;k=0;
     for(j=i;(j<i+N)&&(k<N);)
       sum+=a[k++][j++];
       b[m++]=sum;
       }
       for(i=N-1;i<2*N-1;i++)
       {sum=0;k=N-1;
      for(j=i+1-N;(j<i+1)&&(k>=0);)
         sum+=a[k--][j++];
         b[m++]=sum;}

       max=b[0];
       for(i=1;i<m;i++)
        if(max<b[i])
          max=b[i];
          printf("%d %d\n",max,m);
          for(i=0;i<m;i++)
          printf("%d ",b[i]);}
几点说明:如果想验证更多的矩阵,可将n 值和K 值改变一下即可。K=2*N
2008-12-11 20:58
leejianbao
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-12-11
收藏
得分:0 
这个程序只能适合n=3之内的数而已。
2008-12-12 14:12
xingguang11
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-12-11
收藏
得分:0 
回复 第8楼 leejianbao 的帖子
不会改n和k啊
2008-12-12 23:48
快速回复:求矩阵数字最大和
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035838 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved