zoukankan      html  css  js  c++  java
  • A1031 Hello World for U[图形输出]

    Given any string of N (>=5) characters, you are asked to form the characters into the shape of U. For example, “helloworld” can be printed as:

    h  d
    e  l
    l  r
    lowo
    

    That is, the characters must be printed in the original order, starting top-down from the left vertical line with n1 characters, then left to right along the bottom line with n2 characters, and finally bottom-up along the vertical line with n3 characters. And more, we would like U to be as squared as possible – that is, it must be satisfied that n1 = n3 = max { k| k <= n2 for all 3 <= n2 <= N } with n1 + n2 + n3 - 2 = N.
    Input Specification:

    Each input file contains one test case. Each case contains one string with no less than 5 and no more than 80 characters in a line. The string contains no white space.

    Output Specification:

    For each test case, print the input string in the shape of U as specified in the description.

    Sample Input:

    helloworld!
    

    Sample Output:

    h   !
    e   d
    l   l
    lowor
    

    —————————————————————————
    在这里插入图片描述

    1. 由题意得,两侧边要尽可能大但是要小于底边,然后或几张图找规律可以得出。
    2. 可以直接打印图形也可以赋一个二维数组,这里是赋一个二维数组,先全部初始化为空格,然后再赋值侧边底边,最后打印。
    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
    	char ans[50][50]; string str;
    	getline(cin, str);
    	int n = str.length();
    	int n1 = (n + 2) / 3, n3 = n1, n2 = n + 2 - n1 - n3;
    	for (int i = 0; i < n1; i++)
    	{
    		for (int j = 0; j < n2; j++)
    		{
    			ans[i][j] = ' ';
    		}
    	}
    	int pos = 0;
    	for (int i = 0; i < n1; i++)
    	{
    		ans[i][0] = str[pos++];
    	}
    	for (int j = 1; j < n2 - 1; j++)
    	{
    		ans[n1 - 1][j] = str[pos++];
    	}
    	for (int i = n3 - 1; i >= 0; i--)
    	{
    		ans[i][n2-1] = str[pos++];
    	}
    	for (int i = 0; i < n1; i++)
    	{
    		for (int j = 0; j < n2; j++)
    		{
    			cout << ans[i][j];
    		}
    		cout << endl;
    	}
    }
    
  • 相关阅读:
    某图片网站整合yolo图片特征相似图片获取
    MySQL导入数据报错 ERROR 1794 (HY000) at line 22 -- 解决
    apache-commons-lang3之StringUtils使用集锦
    swf格式的flash文件变更md5
    Linux常见场景的shell使用
    tp5在apache下能访问,但放到nginx下报404
    template-web.js 使用二
    jquery实现动态添加html代码
    JQuery的父、子、兄弟节点
    this
  • 原文地址:https://www.cnblogs.com/Hsiung123/p/13812094.html
Copyright © 2011-2022 走看看