第一道面试题 第一道困难题解答记录

输入一个奇数 n,输出一个由 * 构成的 n 阶实心菱形。

输入格式
一个奇数 n。

输出格式
输出一个由 * 构成的 n 阶实心菱形。

具体格式参照输出样例。

数据范围
1≤n≤99
输入样例:
5
输出样例:

  *  
 *** 
*****
 *** 
  *  

我的解法:总数减去这一行的星号个数除以2,就是前面所需的空格个数

两边都是从1个开始减,没向中间走一行每一行的个数就加(减)2
中间这一行的个数就是行数


代码如下

#include <cstdio>
#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int a;
    cin>>a;
    int tmp=1;
    while(tmp<=a-2) {
        int t=0;
        while(t<(a-tmp)/2){
            cout<<" ";
            t++;
        }
        for (int i = 1 ; i <= tmp ; i++) {
            cout <<"*";
        }
        cout<<endl;
        tmp+=2;
    }


    ///通过只使用for循环的方式,我们可以发现我们使用for循环循环更加清晰,
    //结构更加明确,大多数的需要while好几行的题,我们用for循环一句就可以实现


    for(int i=0;i<a;i++)cout<<"*";
    cout<<endl;
    for(int i=a-2;i>0;i-=2){
        for(int t=0;t<(a-i)/2;t++)cout<<' ';
        for(int t=0;t<i;t++)cout<<'*';
        cout<<endl;
    }
    return 0;
}

image
image

posted @   E_sheep  阅读(33)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示