2011-05-02 4 views
-1

이 프로그램은 간단하지만 약간의 도움이 필요합니다. 작업은 사용자 입력을 얻고 출력이 첫 번째 문자를 한 번, 두 번째 문자를 두 번, 세 번째 문자를 세 번 인쇄해야하는 짧은 프로그램을 작성하는 것입니다.짧은 C++ 프로그램에서 입력 문자를 늘리십시오.

예를 입력 : abcd

예 출력 : abbcccdddd

+3

오케이. 지금까지 뭐라구? –

+0

[답변.] (http://codegolf.stackexchange.com/q/1428/761) –

+0

그래, 이건 숙제 다. 정말로 문제가 되기엔 너무 간단합니다. –

답변

1

글쎄, 보통 난 그냥 사람들을위한 코드를 작성하지 않지만, 여기 당신이 이동이 중 하나의 문자열을 읽어

#include <iostream> 
#include <string> 

int main(int argc, char *argv[]) { 
    std::string in; 
    std::cin >> in; 

    for (int i = 0; i < in.size(); i++) { 
     std::cout << std::string(i + 1, in[i]); // repeat in[i] "i+1" times 
    } 

    // print newline 
    std::cout << "\n"; 

    return 0; 
} 

표준 입력 스트림에서 입력 한 다음 모든 문자를 반복하고 문자를 ii+1 번 출력합니다 (iterables는 C++에서 색인 0로 시작하므로 일반적으로 문자열을 사용하는 경우). 그런 다음 개행 문자를 출력하고 종료합니다.

+0

그런 빠른 답장을 보내 주셔서 감사합니다! 감사합니다! – Teebee

+6

물고기를 잡을 사람을 가르치십시오. (모두) ..... –

+0

@Mitch : 제가 한 일을 조금 설명하려고했지만, 저는 선생님이 아닙니다. – orlp

-1

이중 루프가있는 간단한 솔루션입니다.

의이

[] c를라는 문자 배열을 보자 우리는

int thisMany = 0; 
char c; 

while(cin >> c) 
{ 
    for(int i = 0; i < thisMany; i++) 
     cout << c; 

    thisMany++; 
} 
+0

대단히 감사합니다! – Teebee

0

같은보십시오 뭔가를 여기에 몇 가지 간단한, 최적화되지 않은 코드입니다 :

#include <iostream> 
#include <string> 

int main() 
{ 
    std::string input; 

    // Get user input. 
    std::cin >> input; 

    // Go through each character in input string. 
    for(int i = 0; i < input.length(); ++i) 
    { 
     // Print the character i times. 
     for(int i2 = 0; i2 < i; ++i2) 
     { 
      std::cout << input[i]; 
     } 
    } 

    // Print newline. 
    std::cout << std::endl; 

    return(0); 
} 
+0

정말 고마워요 !! 정말 감사! – Teebee

+0

앞으로도 지금까지의 노력을 요청할 때 답장을 보내 주시면 감사하겠습니다. – pavium

+0

나는 컴퓨터에서 멀리 걸어 갔다. – Teebee

0

등이

for(int i=1;i<length_of_string;i++) 
{ 
    for(int j=1;j<=i;j++) 
     putchar(c[i]); 
} 
관련 문제