CHAPTER 06 - 0083tony/Core-C-Programming GitHub Wiki
- 1λ² λ¬Έμ
μ§μ¬κ°νμ λλ λ₯Ό ꡬνλ ν¨μ νλ‘κ·Έλ¨
#include<stdio.h>
int get_perimeter(int a, int b) {
// μ§μ¬κ°νμ λλ = (κ°λ‘ + μΈλ‘) * 2
return (a + b) * 2;
}
int main(void) {
int a, b;
printf("κ°λ‘? ");
scanf_s("%d", &a);
printf("μΈλ‘? ");
scanf_s("%d", &b);
printf("μ§μ¬κ°νμ λλ : %d", get_perimeter(a, b));
return 0;
}
[μ€ν κ²°κ³Ό]
κ°λ‘? 10
μΈλ‘? 20
μ§μ¬κ°νμ λλ : 60
- 2λ² λ¬Έμ
μ μ¬κ°νμ λμ΄λ₯Ό ꡬνλ ν¨μ νλ‘κ·Έλ¨
#include<stdio.h>
float get_area_of_squarer(float a) {
// μ μ¬κ°νμ λ©΄μ = νλ³μ κΈΈμ΄ * νλ³μ κΈΈμ΄
return a * a;
}
int main(void) {
float a;
printf("ν λ³μ κΈΈμ΄? ");
scanf_s("%f", &a);
printf("μ μ¬κ°νμ λ©΄μ : %f", get_area_of_squarer(a));
return 0;
}
[μ€ν κ²°κ³Ό]
ν λ³μ κΈΈμ΄? 3.5
μ μ¬κ°νμ λ©΄μ : 12.250000
- 3λ² λ¬Έμ
λ μ μ¬μ΄μ μ§μ 거리λ₯Ό ꡬνλ ν¨μ νλ‘κ·Έλ¨
#include<stdio.h>
#include<math.h> // sqrt(), pow()ν¨μ
double distance(int a, int b, int c, int d) {
// sqrt() == 루νΈ, pow() == κ±°λμ κ³±
return sqrt(pow(c - a, 2) + pow(d - b, 2));
}
int main(void) {
int a, b, c, d;
printf("μ§μ μ μμμ μ’ν? ");
scanf_s("%d %d", &a, &b);
printf("μ§μ μ λμ μ’ν? ");
scanf_s("%d %d", &c, &d);
printf("(%d,%d)~(%d,%d) μ§μ μ κΈΈμ΄: %f", a, b, c, d, distance(a, b, c, d));
return 0;
}
[μ€ν κ²°κ³Ό]
μ§μ μ μμμ μ’ν? 0 0
μ§μ μ λμ μ’ν? 3 4
(0,0)~(3,4) μ§μ μ κΈΈμ΄: 5.000000
- 4λ² λ¬Έμ
μ νμ κ°κ²©κ³Ό νμΈμ¨μ μΈμλ‘ λ°μμ ν μΈκ°λ₯Ό 리ν΄νλ ν¨μ νλ‘κ·Έλ¨
#include<stdio.h>
int discount_price(int a, int b) {
return (1 - (0.01 * a)) * b;
}
int main(void) {
int a, b;
printf("ν μΈμ¨(%%)? ");
scanf_s("%d", &a);
// 무ν루ν for(;;) == while(1)
for (;;) {
printf("μ νμ κ°κ²©? ");
scanf_s("%d", &b);
printf("ν μΈκ°: %dμ\n", discount_price(a, b));
// b == 0 무ν루ν νμΆ
if (b == 0) {
break;
}
}
return 0;
}
[μ€ν κ²°κ³Ό]
ν μΈμ¨(%)? 20
μ νμ κ°κ²©? 5000
ν μΈκ°: 4000μ
μ νμ κ°κ²©? 2000
ν μΈκ°: 1600μ
μ νμ κ°κ²©? 0
ν μΈκ°: 0μ
- 5λ² λ¬Έμ
μ λ¬λ°μ μ μκ° μ§μμΈμ§ νμμΈμ§ κ²μ¬νλ ν¨μ νλ‘κ·Έλ¨
#include<stdio.h>
int is_even(int a) {
int even = 0;
// 2λ‘ λλ λλ¨Έμ§κ° 0 == μ§μ
if (a % 2 == 0) {
even++;
}
return even;
}
int is_odd(int a) {
int odd = 0;
// 2λ‘ λλ λλ¨Έμ§κ° 1 == νμ
if (a % 2 == 1) {
odd++;
}
return odd;
}
int main(void) {
int a;
int odd = 0;
int even = 0;
printf("μ μλ₯Ό λΉμΉΈμΌλ‘ ꡬλΆν΄μ μ
λ ₯νμΈμ.(λ§μ§λ§μ 0 μ
λ ₯)\n");
// 무ν루ν for(;;) == while(1)
for (;;) {
scanf_s("%d", &a);
if (is_odd(a) == 1) {
odd++;
}
else {
even++;
}
// 0μ μ
λ ₯νλ©΄ μ§μμ νμμ κ°―μλ₯Ό μΆλ ₯νκ³ λ¬΄ν루ν νμΆ
if (a == 0) {
// λ§μ§λ§μ μ
λ ₯λλ 0μ μ§μλ‘ μ
λ ₯λλ€ κ·Έλ¬λ―λ‘ even - 1
printf("μ
λ ₯λ°μ μ μ μ€ μ§μλ %dκ°, νμλ %dκ°μ
λλ€.", even - 1, odd);
break;
}
}
return 0;
}
[μ€ν κ²°κ³Ό]
μ μλ₯Ό λΉμΉΈμΌλ‘ ꡬλΆν΄μ μ
λ ₯νμΈμ.(λ§μ§λ§μ 0 μ
λ ₯)
12 24 21 42 71 37 100 211 113 0
μ
λ ₯λ°μ μ μ μ€ μ§μλ 4κ°, νμλ 5κ°μ
λλ€.
- 6λ² λ¬Έμ
λ©λ΄λ₯Ό μΆλ ₯νκ³ μ νλ λ©λ΄ νλͺ©μ λ²νΈλ₯Ό μΆλ ₯νλ ν¨μ νλ‘κ·Έλ¨
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int choose_menu(void) {
int a;
printf("[1. νμΌ μ΄κΈ° 2.νμΌ μ μ₯ 3.μΈμ 0.μ’
λ£] ");
scanf("%d", &a);
// μ
λ ₯ λ°μ aλ₯Ό 리ν΄
return a;
}
int main(void) {
for (;;) {
// choose_menu()ν¨μμ 리ν΄κ°μΌλ‘ μνν λ΄μ©μ΄ μ ν΄μ§
switch (choose_menu()) {
case 1:
printf("νμΌ μ΄κΈ°λ₯Ό μνν©λλ€.\n");
break;
case 2:
printf("νμΌ μ μ₯μ μνν©λλ€.\n");
break;
case 3:
printf("μΈμλ₯Ό μνν©λλ€.\n");
break;
case 0:
return 0;
}
}
return 0;
}
[μ€ν κ²°κ³Ό]
[1. νμΌ μ΄κΈ° 2.νμΌ μ μ₯ 3.μΈμ 0.μ’
λ£] 1
νμΌ μ΄κΈ°λ₯Ό μνν©λλ€.
[1. νμΌ μ΄κΈ° 2.νμΌ μ μ₯ 3.μΈμ 0.μ’
λ£] 2
νμΌ μ μ₯μ μνν©λλ€.
[1. νμΌ μ΄κΈ° 2.νμΌ μ μ₯ 3.μΈμ 0.μ’
λ£] 5
[1. νμΌ μ΄κΈ° 2.νμΌ μ μ₯ 3.μΈμ 0.μ’
λ£] 0
- 7λ² λ¬Έμ
μ μκ° μμμΈμ§ κ²μ¬νλ ν¨μ νλ‘κ·Έλ¨
#include<stdio.h>
int is_prime(int n) {
int i, prime = 0;
for (int a = 2; a <= n; a++) {
i = 0; // μμ κ²μ¬κ°
for (int b = 1; b <= a; b++) {
if (a % b == 0)
i++;
}
if (i == 2) {
prime++;
printf("%5d", a);
// μμλ₯Ό 10κ° μΆλ ₯ν λλ§λ€ μ€ λ°κΏ
if (prime != 0 && prime % 10 == 0)
printf("\n");
}
}
// μμμ κ°μ primeμ 리ν΄
return prime;
}
int main(void) {
int n;
printf("1~Nμ¬μ΄μ μμλ₯Ό ꡬν©λλ€. Nμ? ");
scanf_s("%d", &n);
printf("\nμμλ λͺ¨λ %dκ° μ
λλ€.", is_prime(n));
return 0;
}
[μ€ν κ²°κ³Ό]
1~Nμ¬μ΄μ μμλ₯Ό ꡬν©λλ€. Nμ? 100
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97
μμλ λͺ¨λ 25κ° μ
λλ€.
- 8λ² λ¬Έμ
RGBκ°μ μΆμΆνλ ν¨μ νλ‘κ·Έλ¨
#include<stdio.h>
int get_red(int a) {
// μ¬ννΈ μ°μ°μΌλ‘ Redκ°μ ꡬν¨
return a >> 16;
}
int get_green(int a) {
// μ¬ννΈ μ°μ°μΌλ‘ Greenκ°μ ꡬν¨
a = a >> 8;
a = a & 0xFF;
return a;
}
int get_blue(int a) {
a = a & 0xFF;
return a;
}
int main(void) {
int a;
printf("RGB μμ? ");
scanf_s("%x", &a);
printf("RGB %Xμ Red: %d, Greed: %d, Blue: %d", a, get_red(a), get_green(a), get_blue(a));
return 0;
}
[μ€ν κ²°κ³Ό]
RGB μμ? 0xff0080
RGB FF0080μ Red: 255, Greed: 0, Blue: 128
- 9λ² λ¬Έμ
Red, Green, Blue κ°μ μ λ¬λ°μ RGBκ°μ μμ±νλ ν¨μ νλ‘κ·Έλ¨
#include<stdio.h>
int get_red(int a) {
return a >> 16;
}
int get_green(int a) {
a = a >> 8;
a = a & 0xFF;
return a;
}
int get_blue(int a) {
a = a & 0xFF;
return a;
}
int make_rgb(int a) {
int r, g, b;
int color = 0;
// λ§μ΄λμ€ μ°μ°μ ν΅ν΄ 보μμ ꡬν¨
r = 255 - get_red(a);
g = 255 - get_green(a);
b = 255 - get_blue(a);
// or μ°μ°μΌλ‘ rgbκ°μ λ§λ¬
color = color | (r << 16);
color = color | (g << 8);
color = color | b;
return color;
}
int main(void) {
int a;
printf("RGB μμ? ");
scanf_s("%x", &a);
printf("RGB %Xμ 보μ: %06X", a, make_rgb(a));
return 0;
}
[μ€ν κ²°κ³Ό]
RGB μμ? 0xff0080
RGB FF0080μ 보μ: 00FF7F
- 10λ² λ¬Έμ
rand ν¨μλ₯Ό μ΄μ©ν΄ 0 ~ 99 λ²μμ μμμ μ μ 10κ°λ₯Ό μΆλ ₯νκ³ κ·Έ ν©κ³λ₯Ό μΆλ ₯
#include <stdio.h>
#include <stdlib.h> //rand() ν¨μ
#include <time.h> //time() ν¨μ
int random(int add) {
int random = 0;
srand(time(NULL)); // λ§€ μΆλ ₯λ§λ€ λ€λ₯Έ λ³μλ₯Ό μ»μ
for (int i = 0; i < 10; i++) {
// rand() % 100 == 0~99 μ¬μ΄μ λλ€ μ μ
random = rand() % 100;
printf("%5d", random);
add = random + add;
}
return add;
}
int main(void) {
int add = 0;
printf("0 ~ 99μ¬μ΄μ μμμ μ μλ₯Ό 10κ° μμ±ν΄μ ν©κ³λ₯Ό ꡬν©λλ€.\n");
printf("\nν©κ³: %d", random(add));
return 0;
}
[μ€ν κ²°κ³Ό]
0 ~ 99μ¬μ΄μ μμμ μ μλ₯Ό 10κ° μμ±ν΄μ ν©κ³λ₯Ό ꡬν©λλ€.
25 67 63 3 6 69 81 25 27 30
ν©κ³: 396
- 11λ² λ¬Έμ
μ°μ°μ 2κ°, νΌμ°μ°μλ₯Ό μΈμλ‘ λ°μ μ¬μΉμ°μ°μ μννλ ν¨μ νλ‘κ·Έλ¨
#include<stdio.h>
float calculator(float a, float b, char c) {
float n = 0;
switch (c)
{
case '+':
n = a + b;
break;
case '-':
n = a - b;
break;
case '*':
n = a * b;
break;
case '/':
n = a / b;
default:
printf("Error!!\n");
break;
}
return n;
}
int main(void) {
float a = 0, b = 0;
char c;
// for(;;), while(1) == 무ν 루ν
for (;;) {
printf("μμ (0 0 0 μ
λ ₯ μ μ’
λ£)? ");
scanf_s("%f %c %f", &a, &c, 30, &b);
// 0 0 0 μ
λ ₯μ 무ν루ν νμΆ
if (a == 0 && b == 0 && c == '0') {
break;
}
printf("%f\n", calculator(a, b, c));
}
return 0;
}
[μ€ν κ²°κ³Ό]
μμ (0 0 0 μ
λ ₯ μ μ’
λ£)? 12.34 + 1.123
13.463000
μμ (0 0 0 μ
λ ₯ μ μ’
λ£)? 1234.56 * 0.012
14.814721
μμ (0 0 0 μ
λ ₯ μ μ’
λ£)? 0 0 0
- 12λ² λ¬Έμ
μ€λ μΈμ§ κ²μ¬νλ ν¨μ νλ‘κ·Έλ¨
#include<stdio.h>
int is_leap_year(int i) {
if ((i % 4 == 0) && (i % 100 != 0) || (i % 400 == 0)) {
return i;
}
return 0;
}
int main(void) {
int count = 0; // μ€λ
μ μΆλ ₯νλ νμ μΉ΄μ΄ν°
printf("2000λ
~ 2100λ
μ¬μ΄μ μ€λ
\n");
for (int i = 2000; i < 2101; i++) {
// 리ν΄κ°μ΄ 0μ΄ μλλ©΄ ν¨μμμ μ°Ύμ μ€λ
iλ₯Ό μΆλ ₯
if (is_leap_year(i) != 0) {
printf("%dλ
", i);
count++;
// 10κ°μ μ€λ
μ μ°Ύμλ λ§λ€ μ€λ°κΏ
if (count % 10 == 0) {
printf("\n");
}
}
}
return 0;
}
[μ€ν κ²°κ³Ό]
2000λ
~ 2100λ
μ¬μ΄μ μ€λ
2000λ
2004λ
2008λ
2012λ
2016λ
2020λ
2024λ
2028λ
2032λ
2036λ
2040λ
2044λ
2048λ
2052λ
2056λ
2060λ
2064λ
2068λ
2072λ
2076λ
2080λ
2084λ
2088λ
2092λ
2096λ
- 13λ² λ¬Έμ
μ°λμ μμ μΈμλ‘ μ λ¬λ°μ κ·Έ λ¬μ΄ λ©°μΉ μΈμ§ ꡬνλ ν¨μ νλ‘κ·Έλ¨
#include<stdio.h>
int is_leap_year(int year) {
// μ€λ
μΈμ§ κ²μ¬νλ ν¨μ
if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) {
return year;
}
return 0;
}
int get_days_of_month(int year, int i) {
// ν΄λΉ λ
λ λ¬μ λ μ§μλ₯Ό 리ν΄νλ ν¨μ
if (i != 2 && i != 8 && i / 2 == 0) {
return 31;
}
else if (i == 2) {
if (is_leap_year(year) != 0) {
return 29;
}
else return 28;
}
else return 30;
}
int main(void) {
int year;
printf("μ°λ? ");
scanf_s("%d", &year);
printf("[ %dλ
]\n", year);
for (int i = 1; i < 13; i++) {
printf("%2dμ:%dμΌ ", i, get_days_of_month(year, i));
if (i == 6) {
printf("\n");
}
}
return 0;
}
[μ€ν κ²°κ³Ό]
μ°λ? 2019
[ 2019λ
]
1μ:31μΌ 2μ:28μΌ 3μ:30μΌ 4μ:30μΌ 5μ:30μΌ 6μ:30μΌ
7μ:30μΌ 8μ:30μΌ 9μ:30μΌ 10μ:30μΌ 11μ:30μΌ 12μ:30μΌ
- 14λ² λ¬Έμ
μ°, μ, μΌμ μ λ¬λ°μ μ ν¨ν λ μ§μΈμ§ κ²μ¬νλ ν¨μ
#include<stdio.h>
int check_date(int year, int month, int date) {
int err = 0;
// μ€λ
μΈμ§ μλμ§ κ²μ¬ μ€λ
μΌλ 2μμ 29μΌκΉμ§
if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) {
// λ¬μ΄ 0λ³΄λ€ μκ±°λ 12λ³΄λ€ ν΄ κ²½μ° errμ 1μ λνλ€.
if (month < 0 || month > 12) {
err++;
}
// 8μμ μ μΈν μ§μ λ¬μ 30μΌ νμ λ¬μ 31μΌκΉμ§ μλ€.
else if ((month % 2 == 0 && date > 30) && month != 8) {
err++;
}
else if (month == 2 && date > 29) {
err++;
}
else if (month % 1 == 0 && date > 31) {
err++;
}
}
else if (month < 0 || month > 12) {
err++;
}
else if ((month % 2 == 0 && date > 30) && month != 8) {
err++;
}
// μ€λ
μ΄ μλλΌλ©΄ 2μμ 28μΌκΉμ§
else if (month == 2 && date > 28) {
err++;
}
else if (month % 1 == 0 && date > 31) {
err++;
}
return err;
}
int main(void) {
int year, month, date;
for (;;) {
printf("λ μ§ (μ° μ μΌ)? ");
scanf_s("%d %d %d", &year, &month, &date);
// 리ν΄κ° 0 == μ¬λ°λ₯Έ λ μ§, 리ν΄κ° 1 == μλͺ»λ λ μ§
if (check_date(year, month, date) == 0) {
printf("μ
λ ₯ν λ μ§λ %dλ
%dμ %dμΌ μ
λλ€.\n", year, month, date);
break;
}
else {
printf("μλͺ» μ
λ ₯νμ
¨μ΅λλ€. μ ν¨ν λ μ§λ₯Ό μ
λ ₯νμΈμ.\n");
}
}
return 0;
}
[μ€ν κ²°κ³Ό]
λ μ§ (μ° μ μΌ)? 2019 13 1
μλͺ» μ
λ ₯νμ
¨μ΅λλ€. μ ν¨ν λ μ§λ₯Ό μ
λ ₯νμΈμ.
λ μ§ (μ° μ μΌ)? 2019 1 32
μλͺ» μ
λ ₯νμ
¨μ΅λλ€. μ ν¨ν λ μ§λ₯Ό μ
λ ₯νμΈμ.
λ μ§ (μ° μ μΌ)? 2019 2 28
μ
λ ₯ν λ μ§λ 2019λ
2μ 28μΌ μ
λλ€.
- 15λ² λ¬Έμ
μ μ 1357μ 1 ~ 3 λ²μ§Έ μ리μμ λ°μ¬λ¦Όν΄ μΆλ ₯νλ ν¨μ νλ‘κ·Έλ¨
#include<stdio.h>
#include<math.h> // pow()ν¨μ
int round_pos(int n) {
int a = 0;
a = pow(10, n); // 10μ nμΉ
// 1μ μ리μμ λ°μ¬λ¦Ό μκ³ λ¦¬μ¦ == (X + 5) / 10 * 10
return (((1357 + (5 * a)) / (10 * a)) * (10 * a));
}
int main(void) {
for (int n = 0; n < 3; n++)
printf("%dλ²μ§Έ μ리μμ λ°μ¬λ¦Όν κ²°κ³Ό: %d\n", n, round_pos(n));
return 0;
}
[μ€ν κ²°κ³Ό]
0λ²μ§Έ μ리μμ λ°μ¬λ¦Όν κ²°κ³Ό: 1360
1λ²μ§Έ μ리μμ λ°μ¬λ¦Όν κ²°κ³Ό: 1400
2λ²μ§Έ μ리μμ λ°μ¬λ¦Όν κ²°κ³Ό: 1000
- 16λ² λ¬Έμ
32λΉνΈλ°μ΄ν°μ λΉνΈ μμΉ posλ₯Ό μΈμλ‘ μ λ¬λ°μ 32λΉνΈ λ°μ΄ν°μ posλ²μ§Έ λΉνΈκ° 1μ΄λ©΄ 1 μλλ©΄ 0μ 리ν΄νλ ν¨μ νλ‘κ·Έλ¨
#include<stdio.h>
int is_bit_set(int num,int pos) {
// posλ²μ§Έ λΉνΈμ κ°μ μ°Ύκ³ , 쑰건 μ°μ°
if (((num & (1 << (pos - 1))) ? 1 : 0) == 0) {
return 0;
}
else if (((num & (1 << (pos - 1))) ? 1 : 0) == 1) {
return 1;
}
else return -1;
}
int main(void) {
int num;
int count = 0;
printf("μ μ? ");
scanf_s("%x", &num);
printf("%X: ", num);
for (int i = 32; i > 0; i--) {
printf("%d", is_bit_set(num, i));
count++;
// 4bit μΆλ ₯μ μΉΈ λμ°κΈ°, count μ΄κΈ°ν
if (count == 4) {
printf(" ");
count = 0;
}
}
return 0;
}
[μ€ν κ²°κ³Ό]
μ μ? 0x12345678
12345678: 0001 0010 0011 0100 0101 0110 0111 1000
- 17λ² λ¬Έμ
μ λ¬λ μ μ μ’νκ° μ΄λ μ¬λΆλ©΄μ μ μΈμ§ μλ €μ£Όλ ν¨μ νλ‘κ·Έλ¨
#include<stdio.h>
int get_quadrant(int x, int y) {
// μ μ μμΉ nλΆλ©΄μ μ°Ύμμ 리ν΄
if (x > 0 && y > 0) return 1;
else if (x < 0 && y > 0) return 2;
else if (x < 0 && y < 0) return 3;
else if (x > 0 && y < 0) return 4;
return 0;
}
int main(void) {
int x, y;
for (;;) {
printf("μ μ μ’ν (x, y)? ");
scanf_s("%d %d", &x, &y);
switch (get_quadrant(x, y)) {
// 0 리ν΄μ νλ‘κ·Έλ¨ μ’
λ£
case 0:
return 0;
case 1:
printf("1μ¬λΆλ©΄μ μμ΅λλ€.\n");
break;
case 2:
printf("2μ¬λΆλ©΄μ μμ΅λλ€.\n");
break;
case 3:
printf("3μ¬λΆλ©΄μ μμ΅λλ€.\n");
break;
case 4:
printf("4μ¬λΆλ©΄μ μμ΅λλ€.\n");
break;
}
}
}
[μ€ν κ²°κ³Ό]
μ μ μ’ν (x, y)? 10 20
1μ¬λΆλ©΄μ μμ΅λλ€.
μ μ μ’ν (x, y)? -10 20
2μ¬λΆλ©΄μ μμ΅λλ€.
μ μ μ’ν (x, y)? 0 0
- 18λ² λ¬Έμ
0 ~ 999 μ¬μ΄μ λμμ μ½μλ₯Ό ꡬν΄μ μΆλ ₯νλ ν¨μ νλ‘κ·Έλ¨
#include <stdio.h>
#include <stdlib.h> // rand(),srand() ν¨μ
#include <time.h> // time() ν¨μ
void divisors(int a) {
int count = 0;
printf("%dμ μ½μ: ", a);
for (int i = 1; i <= a; i++) {
// λμ aλ₯Ό 1λΆν° aκΉμ§ λλ λλ¨Έμ§κ° 0 == count++
if (a % i == 0) {
// countμ μ½μμ κ°μ μ μ₯
count++;
printf("%3d ", i);
}
}
printf("==> μ΄ %dκ°\n", count);
}
int main(void) {
srand(time(NULL)); // νμ λ€λ₯Έ λμλ₯Ό μ»μ μ μλ€.
int i;
for (i = 0; i < 3; i++) {
// 0~999 μ¬μ΄μ λμ
int a = rand() % 1000;
divisors(a);
}
return 0;
}
[μ€ν κ²°κ³Ό]
798μ μ½μ: 1 2 3 6 7 14 19 21 38 42 57 114 133 266 399 798 ==> μ΄ 16κ°
520μ μ½μ: 1 2 4 5 8 10 13 20 26 40 52 65 104 130 260 520 ==> μ΄ 16κ°
844μ μ½μ: 1 2 4 211 422 844 ==> μ΄ 6κ°
- 19λ² λ¬Έμ
μμΉ λ°μ΄ν°μ μ€μΌμΌμ μΈμλ‘ λ°μ κ·Έλνλ₯Ό μΆλ ₯νλ ν¨μ νλ‘κ·Έλ¨
#include <stdio.h>
#include <stdlib.h> // rand(),srand() ν¨μ
#include <time.h> // time() ν¨μ
void make_graph(int a) {
a = a / 100;
for (int i = 0; i <= a; ++i) {
printf("*");
}
printf("\n");
}
int main(void) {
srand(time(NULL)); // λ§€ν λ€λ₯Έ λμλ₯Ό μ»μ
int i;
for (i = 0; i < 3; i++) {
// 0~9999 μ¬μ΄μ λμλ₯Ό aμ μ
λ ₯
int a = rand() % 10000;
printf("%d: ", a);
make_graph(a);
}
return 0;
}
[μ€ν κ²°κ³Ό]
3657: *************************************
2303: ************************
3297: *********************************
- 20λ² λ¬Έμ
μ κΈ° μκΈμ κ³μ°νλ ν¨μ νλ‘κ·Έλ¨
#include<stdio.h>
double electric_charge(unsigned int kwh) {
double a = 0, b = 0;
// μ¬μ©λμ λ°λ₯Έ μ λ ₯λ μκΈ + κΈ°λ³Έ μκΈ κ³μ°
if (0 < kwh <= 20) {
a = 910;
b = 93.3 * kwh;
if (200 < kwh < 400) {
a = 1600;
b = 187.9 * (kwh - 200) + (200 * 93.3);
if (400 < kwh) {
a = 7300;
b = 280.6 * (kwh - 400) + (200 * 93.3) + (200 * 187.9);
}
}
}
// a == κΈ°λ³Έ μκΈ, b == μ λ ₯λ μκΈ
return a + b;
}
int main(void) {
unsigned int kwh;
for (;;) {
printf("μ μ¬μ©λ (kwh)? ");
scanf_s("%d", &kwh);
// -1 μ
λ ₯μ νλ‘κ·Έλ¨ μ’
λ£
if (kwh == -1) break;
printf("μ κΈ° μκΈ ν©κ³: %.0fμ\n", electric_charge(kwh));
}
return 0;
}
[μ€ν κ²°κ³Ό]
μ μ¬μ©λ (kwh)? 350
μ κΈ° μκΈ ν©κ³: 48445μ
μ μ¬μ©λ (kwh)? 420
μ κΈ° μκΈ ν©κ³: 69152μ
μ μ¬μ©λ (kwh)? -1