ACM--湘大OJ 1086--菱形--水

湘大oj地址:http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1086

菱形

时间限制:1000 ms  |  内存限制:65536 KB

Description

小明现在是湘潭大学10级计算机系的学生。他的C语言学的还算可以,但是今天老师布置的一道课后作业题却把他难住了。题目的意思是要在一个N*N(N为奇数)的菱形方格中用字符’*’打印一个菱形和这个菱形的对角线,在这个菱形中除了’*’号字符以外,都以字符’_’填充。图一和图二分别是N=7和N=9时的图案。小明是一个争强好胜的人,他不愿意去问班上的其他同学,所以他偷偷的跑来求助你,希望你能够帮助他。

                                                              

图一                                                                图二

Input

输入包含多个样例,每个样例为一个奇数N(5 <= N < 50)。当N为0时表示输入结束,这个0不需要处理。

Output

         对于每个样例,在N*N的正方形中用字符’*’打印菱形图案。(注意:菱形中除字符’*’外其余的用’_’字符填充)

Sample Input

5

7

0

Sample Output

__*__

_***_

*****

_***_

__*__

___*___

__***__

_*_*_*_

*******

_*_*_*_

__***__

___*___

#include <stdio.h>
#include<iostream>
using namespace std;
/*
  用来打印菱形
*/
void ha(int n){
    int i,j,b;
    int index=1;
    int temp;
    int flag=1;
    //首部
    for( i=1;i<=n;i++){
        if(i!=n/2+1){
           printf("_");
        }else{
          printf("*");
        }
    }
    printf("\n");

    for(i=1;i<=(n-3)/2;i++){
        temp=(n-3-(i-1)*2)/2;
        for(j=1;j<=temp;j++){
           printf("_");
        }

        printf("*");
        for(b=1;b<i;b++){
           printf("_");
        }
            printf("*");
            for(b=1;b<i;b++){
           printf("_");
        }
                printf("*");

        for(j=1;j<=temp;j++){
           printf("_");
        }

       printf("\n");
    }

    for(i=1;i<=n;i++){
        printf("*");
    }
 printf("\n");

for(i=(n-3)/2;i>=1;i--){
        temp=(n-3-(i-1)*2)/2;
        for(j=1;j<=temp;j++){
           printf("_");
        }

        printf("*");
        for(b=1;b<i;b++){
           printf("_");
        }
            printf("*");
            for(b=1;b<i;b++){
           printf("_");
        }
                printf("*");

        for(j=1;j<=temp;j++){
           printf("_");
        }

       printf("\n");
    }

    //尾部
    for( i=1;i<=n;i++){
        if(i!=n/2+1){
           printf("_");
        }else{
          printf("*");
        }
    }
     printf("\n");

}
int main(){
    int n;
    while(scanf("%d",&n)&&n!=0){

           ha(n);

    }

}
时间: 2024-11-17 06:41:46

ACM--湘大OJ 1086--菱形--水的相关文章

ACM--模拟--湘大OJ 1184--A Love Letter--水

湘大OJ题目地址:传送门 A Love Letter Time Limit : 1000 MS  Memory Limit : 65536 KB 题目描述 CodeMonkey终于下定决心用情书的方式向心爱的女神表白,当他历经几天几夜写完之后才知道女神有很多不喜欢的词,所以他不得不有把这些词删掉.例如:原文是:ILOVEYOU,女神不喜欢的词是'LV','O'那么最终情书要改成IEYU.现在已知女生不喜欢的词的集合S,CodeMonkey想知道刚写的情书会改成什么样?S={"HATE"

ACM--数学--湘大oj 1088--Cycloid

湘大oj题目地址:传送门 Cycloid 时间限制:1000 ms  |  内存限制:65536 KB Description A cycloid is the curve traced by a point on the rim of a circular wheel as the wheel rolls along a straight line. It is an example of a roulette, a curve generated by a curve rolling on

ACM--数学--湘大OJ 1142--Collatz Conjecture

湘大OJ地址:http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1142 Collatz Conjecture Time Limit:8000 MS   Memory Limit : 1048536KB 考拉兹猜想,又称为3n+1猜想.冰雹猜想.角谷猜想.哈塞猜想.乌拉姆猜想或叙拉古猜想,是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1. 如n = 6,根据上述数式

2014湘潭邀请赛 C题 湘大OJ 1205 Range (单调栈)

Problem Description For an array, the range function is defined below: Range(A)=Max(A)-Min(A)+1; For example, suppose A={1,2,3,4,5}, then Range(A)=5-1+1=5. Now, given an array A(length≤100000), you are going to calcalute the sum of all subarray's ran

ACM--湘大OJ 1144--Echo--水

湘大OJ 地址:http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1144 Echo 时间限制:1000 ms  |  内存限制:65535 KB 没有题目描述 有题目描述 题目描述 目描述 描述 述 Input 输入数据的第一行是一个整数T,代表有T组测试数据. 接下来的T行,每行是由一句话构成的一组测试数据,每句话都由一个空格(ASCII码32)分割的若干个单词连接而成,输入保证每行长度在1到4096之间,且一句话的第一

[ACM] Color the ball [线段树水题][数组开大]

Description N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的"小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色.但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗? Input 每个测试实例第一行为一个整数N,(N <= 100000).接下来的N行,每行包括2个整数a b(1 <= a <= b <= N).  当N

各大Oj平台介绍

1.题库与网站资源题库-在线提交系统(Online Judge)简介   下面是几个比较大的在线提交系统(OnlineJudge)里面有大量历年的竞赛题目,注册一个ID,然后用自己熟悉的语言(一般有Pascal/C/C++/Java)写好源代码提交即可,会实时返回信息告诉你是否正确.采用黑箱测试,系统里有一套标准的输入输出数据(对外保密,而且通常数据很多很怪),你的程序的输出和标准输出完全符合即可.   常见的返回信息有 AC(Accepted,通过).WA(Wrong Answer,输出有错误

各大oj题目分类

PythonTip 在线编程 挑战python 博文 模式 问答 ACM 课堂 下载 吐槽 放松 About 搜索 欢迎您:SSYYGAM | 个人中心| 注销 ACM/ICPC专栏 各大OJ近期比赛列表 各大OJ题目分类 负责任的OJ搜索 POJ题目分类 | POJ题目分类 | HDU题目分类 | ZOJ题目分类 | SOJ题目分类 | HOJ题目分类 | FOJ题目分类 | 模拟题: POJ1006POJ1008POJ1013POJ1016POJ1017POJ1169POJ1298POJ13

[ACM] 九度OJ 1553 时钟

时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:1733 解决:656 题目描述: 如图,给定任意时刻,求时针和分针的夹角(劣弧所对应的角). 输入: 输入包含多组测试数据,每组测试数据由一个按hh:mm表示的时刻组成. 输出: 对于每组测试数据,输出一个浮点数,代表时针和分针的夹角(劣弧对应的角),用角度表示,结果保留两位小数. 样例输入: 03:00 14:45 样例输出: 90.00 172.50 来源: 2014年王道论坛计算机考研机试全真模拟考试 解题思路: 求时针和分针的