1 条题解

  • 0
    @ 2025-1-14 16:54:58

    空心菱形

    这道题意思很明了,也很简单,就是让我们打印一个空心菱形,思路:我们先将程序分层,再观察空格数量,最后输出"*"。 如果你像我一样选择分成两部分,那你就写两个大循环,first循环用来写上面三段,second循环用来写下面的三角形。如果你选择三段,那么,第一个循环写上面的,第二个循环写中间的,第三个循环写last三角。

    #include<iostream>
    using namespace std;
    int main() {
    	int n;
    	cin>>n;
    	for(int i=1; i<=n; i++) {
    		for(int j=1; j<=n-i; j++) {
    			cout<<' ';
    		}
    		if(i==1) {
    			cout<<"*";
    		} else {
    			cout<<"*";
    			for(int j=1; j<i*2-2; j++) {
    				cout<<' ';
    			}
    			cout<<"*";
    		}
    		cout<<endl;
    	}
    
    	for(int i=n-1; i>=1; i--) {
    		for(int j=1; j<=n-i; j++) {
    			cout<<' ';
    		}
    		if(i==1) {
    			cout<<"*";
    		} else {
    			cout<<"*";
    			for(int j=1; j<i*2-2; j++) {
    				cout<<' ';
    			}
    			cout<<"*";
    		}
    		cout<<endl;
    	}
    }
    

    代码中,因为第一行和最后一行都只有一个"*",所以要进行特判! 空格的数量变化规律需要认真找。 悄悄告诉你一个小秘密,你可以直接将上面的代码复制下来,改一下循环就可以了

    • 1

    信息

    ID
    109
    时间
    1000ms
    内存
    64MiB
    难度
    8
    标签
    递交数
    15
    已通过
    7
    上传者