コンピュータの課題5-1
2232 ワード
質問です.
気が狂った...階乗長金を使うとオーバーフローしません!
#define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>
int reverse(int num);
int main() {
int i = 0;
printf("Enter an integer between 0 and 4294977295: ");
scanf("%d", &i);
reverse(i);
return 0;
}
int reverse(int num) {
int i=0;
i = num % 10;
printf("%d", i);
if ((num / 10) == 0) return;
reverse(num /10);
}
質問です.#define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>
int gcd(int a, int b);
int main() {
int a=0, b=0;
while (1) {
printf("Enter two positive integers: ");
scanf("%d %d", &a, &b);
if (a <= 0 || b <= 0) printf("Wrong Input, Try agin!\n");
else printf("GCD of %d and %d is %d\n",a, b, gcd(a,b));
system("pause");
}
return 0;
}
int gcd(int a, int b) {
int temp=0;
if (a < b) {
temp = a;
a = b;
b = temp;
}
if (a % b == 0) return b;
gcd(b, a % b);
}
質問3(これはおかしい)気が狂った...階乗長金を使うとオーバーフローしません!
#define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>
int factorial2(int num);
int combination2(int n, int r);
int main() {
int n = 0, r = 0;
while (1) {
printf("Enter the inputs : ");
scanf("%d %d", &n, &r);
if (n >= 5 && r <= 20 && n >= r) printf("nCr : %d\n", combination2(n, r));
else printf("Input Error!\n");
system("pause");
}
return 0;
}
int factorial2(int num) {
if (num == 1 ||num == 0) return 1;
else return num * factorial2(num - 1);
}
int combination2(int n, int r) {
return factorial2(n) / (factorial2(n - r) * factorial2(r));
}
Reference
この問題について(コンピュータの課題5-1), 我々は、より多くの情報をここで見つけました https://velog.io/@rkdud007/컴프과제-5-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol