蛇形矩阵
蛇行矩阵Problem
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
Input
本题有多组数据,每组数据由一个正整数N组成。(N不大于100)
Output
对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。
矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。
Sample Input
5
Sample Output
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11 本帖最后由 刹那芳华 于 2011-12-9 21:20 编辑
没人么?我自己先来个吧~~
#include<iostream>
using namespace std;
int main()
{
floatn , m , count ;
int s;
cout<<"请输入一个数字:"<<endl;
cin>>count;
while(cin)
{
for(n=1,s=1;n<=count;n++,s++)
{
cout<<endl;
for (m=1;m<=count-n+1;m++)
cout<<0.5*(m+n)*(m+n)-n*3/2-m/2+1<<" ";
}
cout<<"输入另一个数字(输入Q退出):";
cin>>count;
}
return 0;
}
发个delphi的控制台程序
program Project1;
{$APPTYPE CONSOLE}
var
i,j,k,n,a,b,c,temp:integer;
begin
writeln('输入一个整数:');
readln(n);
a:=1;
b:=2;
c:=1;
for i:=n downto 1 do
begin
k:=a;
temp:=b;
for j:=i downto 1 do
begin
write(k:6);
k:=k+temp;
inc(temp);
end;
writeln;
a:=a+c;
inc(b);
inc(c);
end;
readln;
end.
为了便于大多数人理解,转换成C的 int _tmain(int argc, _TCHAR* argv[])
{
int i,j,k,n,a,b,c,temp;
printf("please input an integer:\n");
scanf("%d",&n);
a=1;
b=2;
c=1;
for(i=n;i>0;i--)
{
k=a;
temp=b;
for(j=i;j>0;j--)
{
printf("%6d",k);
k+=temp;
temp++;
}
printf("\n");
a+=c;
b++;
c++;
}
getch();
return 0;
} 额也来一个#include<stdio.h>
void main()
{
int i,j,k=0,m=0,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=1;j<=n-i;j++)
{
k+=j+i;
printf("%d ",k);
}
m+=i;
k=m;
printf("\n");
}
} cqy55555 发表于 2011-12-10 19:03 static/image/common/back.gif
额也来一个
若不是按行输出的,是按个数输出的又改怎么写呢?
z____ 发表于 2011-12-10 14:31 static/image/common/back.gif
int _tmain(int argc, _TCHAR* argv[])
{
int i,j,k,n,a,b,c,temp;
若不是按行输出的,是按个数输出的又改怎么写呢? 什么意思?就是输入5的话就只输出5个数吗? z____ 发表于 2011-12-12 22:34 static/image/common/back.gif
什么意思?就是输入5的话就只输出5个数吗?
恩,就是这个意思 #include <stdio.h>
void main()
{
int n;
int i,j;
puts("please enter n:");
scanf("%d",&n);
for( i=0;i<=n-1;i++)
{
static int rowHead = 1,up =0,num;
rowHead += i;
printf("%d\t",rowHead);
for(j=1,num = rowHead;j<n-i;j++)
{
num += j+1+up;
printf("%d\t",num);
}
printf("\n");
up++;
}
return 0;
}
题目是以第二种蛇形序列输出的。如果以第一种蛇形序列输出呢?(个人认为第一种才算是真蛇形)
如果再将题目改成输出(10 X 10或5 X 10)之类的矩阵,
又如何使算法变得可以在最大尺度上的重用,或最小尺度上的修改呢?
:lol:lol:lol:lol:lol 再假设:
如果想输出正三角形呢?(当前题目是倒三角)
又或者,想以:
1
2 3
6 5 4
7 8 9 10
这种蛇形三角输出呢? 其实我真正想说的是算法的维护和扩展这两个特点。 z____ 发表于 2011-12-10 14:18 static/image/common/back.gif
program Project1;
{$APPTYPE CONSOLE}
{:7_148:}!!!! 这个是线性代数里的么
页:
[1]