打印正三角形
* //空10个空格打印1个字母 星星循环1次*** //空 9个空格打印3个字母 3
***** //空 8个空格打印5个字母 5
******* //空 7个空格打印7个字母 7
********* //空 6个空格打印9个字母 9
*********** //空 5个空格打印11个字母 11
************* //空 4个空格打印13个字母 13
*************** //空 3个空格打印15个字母 15
***************** //空 2个空格打印17个字母 17
******************* //空 1个空格打印19个字母 19
嵌套2个 循环 一个 循环控制 空格 一个控制星星
控制空格的理解了 ;
但是 星星的那个 很烦啊。。。
第1行:1个
第2行:3个
每行逐渐2个的递增 这个 要怎么写?
----------------解决方案--------------------------------------------------------
这样写,每循环一次,也就是把i++改成i=i+2;这样就可以了
----------------解决方案--------------------------------------------------------
外面一个for(;;k+=2;)循环;里面两个for()循环,一个打空格,一个打“*”;懂?
----------------解决方案--------------------------------------------------------
三个循环复杂度明显就高上去了,可以一个循环控制行数,一个循环控制空格和*,里面的循环加上一个判断就行。
int n = 11;
int t = n;
for(int i=0;i<10;i++) {
t--;
for(int j=0;j<n;j++) {
if(j<t)
System.out.print(" ");
else
System.out.print("*");
}
System.out.println();
n++;
}
你只要知道空格加*的个数是递增的,而空格的个数是递减的就好办了,用两个变量去控制。
[ 本帖最后由 jafisher 于 2012-12-6 16:21 编辑 ]
----------------解决方案--------------------------------------------------------
import java.util.Scanner;
public class test1 {
public static void printSpace(int space)
{
for (int i=0;i<space;i++)
System.out.print(" ");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner Cin=new Scanner(System.in);
System.out.print("请输入各行最多的*号数值:");
int row=Cin.nextInt();
for(int i=row;i>0;i=i-2)
{
//上三角
//输出每行空格
printSpace((row-i)/2);
//输出row个×
for(int j=i;j>0;j--)
System.out.print("*");
System.out.println();
}
}
就这样了,不知道是不是你要的呢
----------------解决方案--------------------------------------------------------
程序代码:
for(int i = 1 ; i < 10 ; i++)
{
for(int j = 10 ; j > i-1 ; --j)
{
cout<<" ";
}
for (int m = 0 ; m < i*2-1 ; ++m)
{
cout<<"*";
}
cout<<endl;
}
{
for(int j = 10 ; j > i-1 ; --j)
{
cout<<" ";
}
for (int m = 0 ; m < i*2-1 ; ++m)
{
cout<<"*";
}
cout<<endl;
}
[ 本帖最后由 fz19910125 于 2012-12-6 17:58 编辑 ]
----------------解决方案--------------------------------------------------------
楼上的好,用i<2*n-1
----------------解决方案--------------------------------------------------------
public static void main(String[]args){
for(int i=1;i<11;i++){
for(int j=i;j<11;j++){
System.out.print(" ");
}
for(int z=1;z<=i*2-1;z++){
System.out.print("*");
}
System.out.println();
}
}
----------------解决方案--------------------------------------------------------