"알고리즘 노트"얻기 시뮬레이션

1.PAT B1001 다음 (3N + 1) 추측의 킬 매력

Kharazi (Callatz는) 추측 :

임의의 양의 정수를 들어  심지어 N의 경우, 그것은 등분 그것은 홀수이면  (소정주기 위해 최종 단계에서, 이러한 반복적되어 절단 절반.  N- = 1에서 Kharazi 이 추측에 게시 된 수학자 1950 세계 의회는, 전설적인 예일 대학의 교사와 학생 Qidong의 위안이 필사적으로이 겉으로는 어리석은 순진 제안은, 학생들이 실수로 너무 많은 소음 연구 결과를 증명하고자했다, 하나에서만 인증서  (누군가 그는 Kharazi이 의도적으로 미국의 수학 교육과 연구의 진행을 지연 한, 그것은 음모했다 ......

우리의 주제는 오늘 증거 Minka 말이 맞아 추측이 아니라 1,000 초과하지 않는 어떤 주어진 양의 정수에  N을, 단순히 숫자, 얼마나 많은 단계를 얻을 필요가 (몇 컷) 계산  N- 형 = 1?

 입력 샘플 3

 샘플 출력 : 5
 
해상도 :
언어의 사용 : C ++ (C ++ 입출력 매우 간단하기 때문에)
사상 : 루프는 N = 1이 될 때까지, 또한 감시를 정의 할 때까지 동안마다 while 루프가 한번 더 센티넬 최종 입력 센티널 값을 지불
#INCLUDE <iostream>
 은 USING  스페이스 STD;
 INT {) (주
     INT N; //는 양의 정수이고 n은 정의 
    INT COUNT = 0 ; // 센티넬 정의 
    CIN >> N; // C ++ 입력 스트림의 입력 값 N 
    그동안 (N ! = . 1 ) { // 그동안 생체 루프 종료 조건 저장 
        IF (N- % 2 == 0 ) 
            N- = N- / 2 ] // 2 제외한 짝수 
        다른 
            N- = ( . 3 * N- + 1이다. ) / 2 ] // 홀수 3 (2)에 의해 제산을 첨가함으로써
        COUNT ++ ; 
    } 
    COUT << COUNT; // 출력 스트림 
}

2.PAT B1032 : 굴삭기 강력한 어떤

강력한 결국 사실 굴삭기 어떤을 설명하기 위해, PAT 굴삭기는 기술 경쟁을 조직했다. 이제 그 경쟁의 결과에 기초하여 가장 강한 기술 학교의 통계.

입력 형식 :

입력 초과하지 않는 첫 번째 줄에 제시되어  정수 플러스  N, 즉 엔트리 수. 이어서  N 라인이 각각의 모든 참가자들이 (연속적으로 번호가 1 번부터) 번호를 나타내는 학교를 포함하는 정보 및 결과를 부여하고, 게임 점수 (백분율)의 공간으로 분리된다.

출력 형식 :

행에서 가장 높은 총 점수, 학교의 수와 총 점수를 감안할 때, 공백으로 구분. 유일한 대답은 피사체가 연결되지 않도록하는 것입니다.

샘플 입력 :

6 
3  65 
2  80 
1  100 
2  70 
3  40 
3  0

해상도 :

  먼저, 배열에 저장되어 굴삭기 N, CIN 필요한 표준 입력 스트림 입력의 총 수는, 그들이 학교 [수 (연속 1부터 번호), 어레이를 초기화하는 필요성을 나타내는 포함 나타낸다는 것을 주목해야한다 n은 1에서 시작되도록 설정되어야 N + 1의 어레이. 어레이> [학교 - 루프 입력 CIN 순환있는 동시에, 반복해서 순환 된 후 상기 입력은 각각의 값이 학교의 합이어야한다 대한 최대 값을 찾기 위해, 상기 동시 수행 표준, 학교 점수 : 값의 배열].

  어떻게 최대 값을 찾는 방법은? 수득 될 수있는 몇 가지 방법이 있으며, 가장 단순하게 시작 설정 최대 = 0 말하기 최대 가정 및 배열 값이 기록 최대 값의 값보다 큰 경우, 순차적으로, 루프에 대한 비교 첨자 최종 최대가 최대 값인지 확인하기 위해 최대로 할당하고, 그 결과 인덱스가 학교, 학교는 최대 값이 결과 얻을 수 있습니다.

# 포함 <iostream> 
# 포함 <알고리즘> 
# 포함 <STDIO.H> 
# 포함 < 문자열 >
 사용  스페이스 성병; 

값 int () {메인
     INT , 최대 = N, H, CJ를 0 , maxh 단계; 
    CIN >> N;
    int로 A [N + 1 ];
    위한 ( INT 난 = 1 ; I <= N; I ++ ) { 
        A [I] = 0 ; 
    } 
     ( INT J = 1 ; J <= N; J ++ ) { 
        CIN >> H >>CJ; 
        이 [H]가 A [H]를 + = CJ;
        만약 (최대 < A [H]) { 
            최대 = A [H]; 
            maxh = H; 
        } 
    } 
    COUT << maxh << "  " << 최대;
    반환  0 ; 
}

3.PAT B1036 : 오바마와 함께 프로그램 

  버락 오바마 미국 대통령은 프로그래밍을 배우는 모든 사람에게 호소, 심지어 미국 역사상 최초의 대통령이 될 코드를 작성, 쓰기 컴퓨터 코드에 모범을뿐만 아니라. 2014의 끝, "컴퓨터 과학 교육 주간은"공식적으로 출범 축하하기 위해, 오바마 대통령은 컴퓨터 코드는 매우 간단 쓴 : 화면에 사각형을 그립니다. 지금 당신은 그와 함께 그립니다!

입력 형식 :

주어진 입력 행 사각형 측면 길이가  N ( 정사각형 측 문자 C의 하나의 공간 간격 이루어지는. 3).

출력 형식 :

지정된 문자 C의 출력은 사각 그려. 그러나 줄 간격이 너무 결과가 더 사각형처럼 보이게하기 위해, 열 간격보다 큰 것을 언급, 우리 출력 라인의 수는 (가장 가까운 정수로 반올림) 열 수 실제로 50 %이다.

샘플 입력 :

10 a
샘플 출력 :
aaaaaaaaaa의 
금주 모임 
금주 모임 
금주 모임 
aaaaaaaaaa

분석 : 라운딩 본질적 즉 (N + 1) / 2이다 :

    N이 짝수 (N + 1) / 2 알과 (N + 1) / 2 = N / 2이면

    N은 함께 (N + 1) / 2를 비교 홀수이면

   경우 제 1 라인의 출력과 모든 출력의 마지막 행, 2 번째 ~ n-1 개의 더블 루프 용액 사용 엔드 입력 A, 입력 중간 공간에 라인 단부,

사용법 #include <iostream>
 사용  스페이스 성병;
int로 주 () 
{ 
    INT의 N을;
    문자 C; 
    CIN >> >> N C; 

    위한 ( INT 난 = 0 ; I <(N + 1 ) / 2 ; I ++) // 四舍五入的本质
    {
          ( INT J = 0 ; J <N; J ++ ) 
        { 
            경우 (I == 0 || I == (N - 1 ) / (2) || J == 0 || J == N - 1 ) //I == 0 난 == (N-1) / (2)는 모든 문자 출력의 처음과 마지막 라인 나타내는 
               COUT << C 단계;                                            // 출력 문자 요구의 처음과 마지막 라인 나머지 
            다른 
                COUT을 < < '  ' ; 
        } 
        COUT << ENDL; // 
    } 

    반환  0 ; 
}

 

 

 

 

 

 

 

 

 

추천

출처www.cnblogs.com/Whgy/p/12163289.html