본문 바로가기

Computer Engineering/나프잘

나프잘 파랑 / 9-5 문제풀이 및 피드백

피드백과 공부 내용

1. 처리단계 2.4.에 "3의배수가 아니고 5의 배수가 아니면"으로 표현하는 게 더 정확한 표현임.
2. NS차트 및 설계에서 논리곱 연산자를 &&를 쓰면 안됨(AND를 사용해야함). NS에서 쓰이는 예약어가 아니다. 주의할 것.


 

1. 문제 이해





2. 분석





3. 설계







4. 검토




5. C구현
//sumWithoutMultiplesOfThreeAndFive.c
/*
파일 명칭 : sumWithoutMultiplesOfThreeAndFive.c
함수 명칭 : main
기 능 : 1부터 100까지 숫자를 세며, 3 혹은 5의 배수인지 확ㄷ인하고 아닐 때 합계를 구하여 출력하며, 최종합계를 출력한다.
입 력 : 없음
출 력 : 합계
작성 일자 : 2019-11-07
*/

//매크로 영역
#include  <stdio.h>

#define MAX 100
#define MULTIPLETHREE 3
#define MULTIPLEFIVE 5

//함수 선언
int main(int argc, char* argv[]);

//함수 정의
int main(int argc, char* argv[]) {
 //자동 변수 선언
 auto unsigned int sum = 0;
 auto unsigned int number;
 auto unsigned int remainderThree;
 auto unsigned int remainderFive;

 //1.제목을 출력한다.
 printf("숫자\t\t\t합계\n");
 //2. 숫자가 최대값보다 작거나 같을 때 반복한다.
 for (number = 1; number <= MAX; number++) {
  //2.2. 3의 배수인지 확인한다.
  remainderThree = number % MULTIPLETHREE;
  //2.3. 5의 배수인지 확인한다.
  remainderFive = number % MULTIPLEFIVE;
  //2.4. 3과 5의 배수가 아니면,
  if (remainderThree != 0 && remainderFive != 0) {
   //2.4.1. 합계를 구한다.
   sum += number;
   //2.4.2. 숫자와 합계를 출력한다.
   printf("%d\t\t\t%d\n", number, sum);
  }
  //2.1. 숫자를 센다.
 }
 //3. 합계를 출력한다.
 printf("합계 : %d\n", sum);
 //4. 끝낸다.
 return 0;
}

 

6. 디버깅







7. JAVA구현
//Main.java
/*
파일 명칭 ; Main.java
메소드 명칭 : main
기 능 : 1부터 100까지 숫자를 세며, 3 혹은 5의 배수인지 확인하고, 아닐 때 합계를 구하여 출력하며, 최종 합계를 출력한다.
입 력 : 없음
출 력 : 합계
작성 일자 : 2019-11-07
*/

//패키지 선언
package sumwithoutmultiplesofthreeandfive;

//Main 클래스
public class Main{
    //main 메소드
    public static void main(String[] args){
        // 상수 변수 선언
        final int MAX = 100;
        final int MULTIPLETHREE = 3;
        final int MULTIPLEFIVE = 5;
        
        //지역 변수 선언
        int sum = 0;
        int number;
        int remainderThree;
        int remainderFive;
        
        //1. 제목을 출력한다.
        System.out.println("숫자\t\t\t합계");
        //2. 숫자가 최대값보다 작거나 같을 때 반복한다.
        for(number=1; number<=MAX; number++){
            //2.2. 3의 배수인지 확인한다.
            remainderThree=number%MULTIPLETHREE;
            //2.3. 5의 배수인지 확인한다.
            remainderFive=number%MULTIPLEFIVE;
            //2.4. 3과 5의 배수가 아니면,
            if(remainderThree!=0 && remainderFive!=0){
                //2.4.1. 합계를 구한다.
                sum+=number;
                //2.4.2. 숫자와 합계를 출력한다.
                System.out.printf("%d\t\t\t%d\n", number, sum);
            }
            //2.1. 숫자를 센다.
        }
        //3. 합계를 출력한다.
        System.out.println("합계 : "+sum);
        //4. 끝낸다.
    }
}

 

8. NS차트