高分悬赏:Java语言怎么求一个矩阵的最外一圈的所有数字的和?
首先,定义二维数组 m*n
其次,确定最外一圈的元素下标的规律为,第一行、第一列、最后一行、最后一列;对应的规则是
for(int i=0;i<n;i++)
sum+=a[0][i];//第一行
for(int i=0;i<n;i++)
sum+=a[n-1][i];//最后一行
for(int i=0;i<m;i++)
sum+=a[i][0];//第一列
for(int i=0;i<m;i++)
sum+=a[n-1][0];//最后一列
//供参考
public class Test {
public static void main(String[] args) {
//定义一个矩阵
int[][] jz = {{78,79,65,87},{45,85,62,95},{54,55,66,96},{45,85,62,20}};
int addValue = 0;
String str = "";
for (int i=0;i<jz.length;i++){
for (int j=0;j<jz[i].length;j++){
if(i==0||i==jz.length-1){
//累加第0行和最后一行
str += (i==0&&j==0?"":"+")+jz[i][j];
addValue += jz[i][j];
}
else if(j==0||j==jz[i].length-1){
//累加非第0行和非最后一行的第0个元素和最后一个元素
str += "+"+jz[i][j];
addValue += jz[i][j];
}
System.out.print(jz[i][j]+" ");
}
System.out.println();
}
System.out.println("矩阵最外圈求和如下");
System.out.println(str+"="+addValue);
}
}
#include #include #include using namespace std; int count=0; void countNum(int a[],int start,int finish) { //cout<finish) return ; if(a[middle]==2) { count++; countNum(a,start,middle-1); countNum(a,middle+1,finish); //cout<<"get here"<2) { countNum(a,start,middle-1); }else
{
countNum(a,middle+1,finish);
}
//return count; } int main() { int s[1000]; ifstream inf("1.txt"); int i=0;
while(!inf.eof())
{inf>>s[i];i++;} //int s[]={1,2,2,2,3}; int start=0;//,finish=NUM-1; countNum(s,start,i-1); cout<<count<<endl; }