More actions
imported>kye0226 No edit summary |
(Quality repair v1) |
||
| (10 intermediate revisions by 4 users not shown) | |||
| Line 9: | Line 9: | ||
|- | |- | ||
| 튜티 | | 튜티 | ||
| | | 김영은 | ||
| 참석 | | 참석 | ||
|- | |- | ||
| Line 27: | Line 27: | ||
=== 김영은 === | === 김영은 === | ||
#include <stdio.h> | |||
int main() | |||
{ | |||
int n; | |||
while (1)//무한반복 | |||
{ | |||
printf("몇 factorial의 값을 구하시겠습니까?\n"); | |||
scanf("%d", &n); | |||
if (n == -1) | |||
break; | |||
else if (n < -1) | |||
continue; | |||
else | |||
printf("%d! = %d\n", n, factorial(n)); | |||
} | |||
} | |||
int factorial(int n)//int main과 다른 함수 | |||
{ | |||
if (n == 0) | |||
return 1; | |||
else | |||
return n*factorial(n - 1); | |||
} | |||
=== 김상렬 === | === 김상렬 === | ||
#include<stdio.h> | |||
#pragma warning(disable:4996) | |||
int main(void) { | |||
int n, result; | |||
while (1) { | |||
printf("몇 factorial 값 n please : "); | |||
scanf("%d", &n); | |||
if (n == -1) { | |||
break; | |||
} | |||
else if (n < -1) { | |||
continue; | |||
} | |||
else { | |||
result = fact(n); | |||
printf("%d\n", result); | |||
} | |||
} | |||
} | |||
int fact(int n) { | |||
if (n == 0 ){ | |||
return 1; | |||
} | |||
else { | |||
return n * fact(n - 1); | |||
} | |||
} | |||
=== 최다인 === | === 최다인 === | ||
#include <stdio.h> | #include <stdio.h> | ||
| Line 65: | Line 129: | ||
=== 김영은 === | === 김영은 === | ||
#include <stdio.h> | #include <stdio.h> | ||
int main() | // 밑에서 선언할 때 프로토타입 사용 | ||
void hanoi(int n, char src, char dest, char aux); | |||
int main() { | |||
int n; | int n; | ||
char src = 'A', dest = 'B', aux = 'C'; | |||
scanf("%d", &n); | |||
hanoi(n, src, dest, aux); | |||
return 0; | |||
} | |||
void hanoi(int n, char src, char dest, char aux) { | |||
//return값이 필요없을 때 void 사용 | |||
if (n == 1) | |||
{ | { | ||
printf(" | printf("%c에서 %c로 원반이동\n", src, dest); | ||
return; | |||
} | } | ||
hanoi(n - 1, src, aux, dest); | |||
hanoi(1, src, dest, aux); | |||
hanoi(n - 1, aux, dest, src); | |||
} | } | ||
=== 김상렬 === | === 김상렬 === | ||
=== | #include<stdio.h> | ||
int hanoi(int n, int In, int Fin) | |||
{ | |||
static int count = 0; | |||
int Mid = 6-In-Fin; | |||
if(n==1){ | |||
printf("%d --> %d\n", In, Fin); | |||
count+=1; | |||
} | |||
else{ | |||
hanoi(n-1,In, Mid); | |||
hanoi(1, In, Fin); | |||
hanoi(n-1, Mid, Fin); | |||
} | |||
return count; | |||
} | |||
int main(void){ | |||
int disk, fcount;// | |||
printf("원판수 입력: "); | |||
scanf("%d", &disk); | |||
fcount = hanoi(disk, 1,3); | |||
printf("총 이동 수는 : %d\n", fcount); | |||
return 0; | |||
} | |||
//helped by zeropage | |||
= 후기 = | = 후기 = | ||
| Line 98: | Line 189: | ||
----- | ----- | ||
[[새싹교실/2016/고등어자반|고등어자반]] | [[새싹교실/2016/고등어자반|고등어자반]] | ||
Latest revision as of 04:58, 27 March 2026
진행사항
- 참여자
| 튜터 | 최다인 | 참석 |
| 튜티 | 김영은 | 참석 |
| 김상렬 | 참석 |
- 제어문 복습
- 함수
- 함수의 사용법
- 함수 prototype
- 지역변수, 전역변수
- 재귀함수
실습
- 값을 입력받아 해당 값의 factorial을 구하는 프로그램을 작성
김영은
#include <stdio.h>
int main()
{
int n;
while (1)//무한반복
{
printf("몇 factorial의 값을 구하시겠습니까?\n");
scanf("%d", &n);
if (n == -1)
break;
else if (n < -1)
continue;
else
printf("%d! = %d\n", n, factorial(n));
}
}
int factorial(int n)//int main과 다른 함수
{
if (n == 0)
return 1;
else
return n*factorial(n - 1);
}
김상렬
#include<stdio.h>
#pragma warning(disable:4996)
int main(void) {
int n, result;
while (1) {
printf("몇 factorial 값 n please : ");
scanf("%d", &n);
if (n == -1) {
break;
}
else if (n < -1) {
continue;
}
else {
result = fact(n);
printf("%d\n", result);
}
}
}
int fact(int n) {
if (n == 0 ){
return 1;
}
else {
return n * fact(n - 1);
}
}
최다인
#include <stdio.h>
int fact (int n);
int main () {
int n;
while (1) {
printf("몇 factorial의 값을 구하시겠습니까? : ");
scanf("%d", &n);
if (n == -1) { break; }
else if (n < -1) {
printf("잘못된 입력값입니다. 양수를 입력해주세요.\n");
continue;
}
else {
printf("%d! : %d\n", n, fact(n));
}
}
return 0;
}
int fact (int n) {
if (n == 0) { return 1; }
else { return n * fact(n - 1); }
}
과제
- 하노이의 탑
김영은
#include <stdio.h>
// 밑에서 선언할 때 프로토타입 사용
void hanoi(int n, char src, char dest, char aux);
int main() {
int n;
char src = 'A', dest = 'B', aux = 'C';
scanf("%d", &n);
hanoi(n, src, dest, aux);
return 0;
}
void hanoi(int n, char src, char dest, char aux) {
//return값이 필요없을 때 void 사용
if (n == 1)
{
printf("%c에서 %c로 원반이동\n", src, dest);
return;
}
hanoi(n - 1, src, aux, dest);
hanoi(1, src, dest, aux);
hanoi(n - 1, aux, dest, src);
}
김상렬
#include<stdio.h>
int hanoi(int n, int In, int Fin)
{
static int count = 0;
int Mid = 6-In-Fin;
if(n==1){
printf("%d --> %d\n", In, Fin);
count+=1;
}
else{
hanoi(n-1,In, Mid);
hanoi(1, In, Fin);
hanoi(n-1, Mid, Fin);
}
return count;
}
int main(void){
int disk, fcount;//
printf("원판수 입력: ");
scanf("%d", &disk);
fcount = hanoi(disk, 1,3);
printf("총 이동 수는 : %d\n", fcount);
return 0;
}
//helped by zeropage