您的位置:首页 > 编程语言 > C语言/C++

输出各种形式的1到10

2017-03-25 15:57 369 查看
真的不太明白这种东西存在的意义,但是老师就是拿这种东西来考你你说怎么办吧。。。
/**输入n,输出下面这种形式的矩阵
1
5 2
8 6 3
10 9 7 4
按列输出
*/
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int a[100][100];
a[0][0]=1;
int i,j,k;
for(i=1;i<n;i++){
a[i][0]=1+(n+n-i+1)*i/2;
}
for(j=1;j<n;j++){
for(k=j;k<n;k++){
a[k][j]=a[k-1][j-1]+1;
}
}
for(int k=0;k<n;k++){//输出
for(int p=0;p<n;p++){
if(a[k][p]!=0){
cout<<a[k][p]<<" ";
}
}
cout<<endl;
}
}

方法二:

#include<iostream>
using namespace std;
int main(){
int n;cin>>n;
int a[10][10];
a[0][0]=1;
for(int i=1;i<n;i++){
int k=n+1;
for(int j=0;j<=i;j++){
a[i][0]=a[i-1][0]+k;
k--;
}
}
for(int j=1;j<n;j++){
for(int m=1;m<n;m++){
a[j][m]=a[j-1][m-1]+1;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
cout<<a[i][j]<<" ";
} cout<<endl;
}
}


/**输入n控制行数,输出以下形式
1
2 5
3 6 8
4 7 9 10
*/
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int k=1;
int a[100][100];
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
a[i][j]=k;
k++;
}
}
for(int m=0;m<n;m++){
for(int b=0;b<n;b++){
if(a[b][m]!=0)
cout<<a[b][m]<<" ";
}
cout<<endl;
}
}

/**输入n控制行数,输出以下形式
1 2 3 4
5 6 7
8 9
10
*/
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int a[100][100];
int k=1;
for(int i=0;i<n;i++){
for(int j=n-i;j>0;j--){
a[i][n-j]=k;
k++;
}
}
for(int m=0;m<n;m++){
for(int b=0;b<n;b++){
if(a[m][b]!=0){
cout<<a[m][b]<<" ";
}
}
cout<<endl;
}
}
今天也是收获满满的一天~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ 算法
相关文章推荐