引言:
***形对于新手了解循环以及嵌套循环帮助是非常大的。(以下的题各题之间有关联)
我们最终目的,就是会编程写菱形;看下面的图片
解题思路:运用拆分法,我们将菱形分为4个部分,看图:
接下来,我们从基础开始弄。
第一题(学会输出):
先来一个简单的图形,入门一下;
样例输入1:3
输出:
##
##
##
样例输入2:7
输出:
##
##
##
##
##
##
##
代码1(性质与代码2相同):
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cout<<"##"<<endl;
}
return 0;
}
代码2:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=2;j++)
{
cout<<"#";
}
cout<<endl;
}
return 0;
}
OK,已经算入门了,接下来上强度。
第二题(学会递增输出):
样例输入1:7
样例输出1:
#
##
###
####
#####
######
####### //第七行 七个#
样例输入2:10
样例输出2:
#
##
###
####
#####
######
#######
########
#########
########## //第十行 十个#
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
cout<<"#";
}
cout<<endl;
}
return 0;
}
第三题(学会递减输出):
样例输入一:3
样例输出一:
###
##
#
样例输入一: 7
样例输出二:
#######
######
#####
####
###
##
#
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=n;j>=i;j=j-1) //着重了解本行
{
cout<<"#";
}
cout<<endl;
}
return 0;
}
、
第四题(学会运用空格搭配输出):
样例输入一:5
样例输出一:
#
##
###
####
#####
样例输入一: 7
样例输出二:
#
##
###
####
#####
######
#######
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=n;j>=i;j=j-1)
{
cout<<" ";
}
for(int j=1;j<=i;j++)
{
cout<<"#";
}
cout<<endl;
}
return 0;
}
第五题(组合输出):
样例输入一:6
样例输出:
#
###
#####
#######
#########
###########
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=n;j>=i;j=j-1)
{
cout<<" ";
}
for(int j=1;j<=i;j++)
{
cout<<"#";
}
for(int j=1;j<=i-1;j++) //新加的代码,注意i-1
{
cout<<"#"; //新加的代码
}
cout<<endl; //新加的代码
}
return 0;
}
第六题(拼凑菱形):
样例输入一:6
样例输出二: 菱形(6+5行)
#
###
#####
#######
#########
###########
#########
#######
#####
###
#
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=n;j>=i;j=j-1)
{
cout<<" ";
}
for(int j=1;j<=i;j++)
{
cout<<"#";
}
for(int j=1;j<=i-1;j++)
{
cout<<"#";
}
cout<<endl;
}
for(int i=1;i<=n;i++) //新加的代码
{
for(int k=1;k<=i+1;k++) //新加的代码
{
cout<<" ";
}
for(int j=n-i;j>=1;j--) //新加的代码
{
cout<<"#";
}
for(int y=i;y<=n-2;y++) //新加的代码
{
cout<<"#";
}
cout<<endl;
}
return 0;
}