Tuesday, April 21, 2015

Bài 67

Bài 67: Tính S(x,n) = Bài 33

//========================================
// Cach 1
#include <stdio.h>
#include <conio.h>

void main()
{
 float x;
 printf("x = ");
 scanf("%f", &x);
 int n;
 printf("n = ");
 scanf("%d", &n);
 float S = 0;
 float P = 1;
 float dau = -1;
 for(int i=2; i<=2*n; i=i+2)
 {
  P = P*x*x;
  S = S + P*dau;
  dau = -dau;
 }
 printf("S = %f", S);
}

//========================================
//Cach 2
#include <stdio.h>
#include <conio.h>

float Tong(float,float);
void main()
{
 float x;
 printf("x = ");
 scanf("%f", &x);
 int n;
 printf("n = ");
 scanf("%d", &n);
 float kq = Tong(x,n);
 printf("S = %f", kq);
 
}

float Tong(float y, float k)
{
 float S = 0;
 float P = 1;
 float dau = -1;
 for(int i=2; i<=2*k; i=i+2)
 {
  P = P*y*y;
  S = S + P*dau;
  dau = -dau;
 }
 return S;
}

Monday, April 20, 2015

Bài 66

Bài 66: Tính S(x,n) =

//========================================
// Cach 1
#include <stdio.h>
#include <conio.h>

void main()
{
    float x;
    printf("x = ");
    scanf("%f", &x);
    int n;
    printf("n = ");
    scanf("%d", &n);
    float S = 0;
    float P = 1;
    float dau = 1;

    for (int i=1; i<=n; i++)
    {
        P = P*x;
        S = S + dau*P;
        dau = -dau;
    }
    printf("S = %f", S);
}

//========================================
//Cach 2
#include <stdio.h>
#include <conio.h>

float Tong(float,int);
void main()
{
    float x;
    printf("x = ");
    scanf("%f", &x);
    int n;
    printf("n = ");
    scanf("%d", &n);
    float kq = Tong(x,n);
    printf("S = %f", kq);
}

float Tong(float y, int k)
{
    float S = 0;
    float P = 1;
    float dau = 1;

    for (int i=1; i<=k; i++)
    {
        P = P*y;
        S = S + dau*P;
        dau = -dau;
    }
    return S;
}

Saturday, April 18, 2015

Bài 65

Bài 65: Giải hệ phương trình bậc nhất 2 ẩn Bài 33

//========================================
// Cach 1
#include <stdio.h>
#include <conio.h>

void main()
{
 float a1,b1,c1;
 float a2,b2,c2;

 printf("a1 = ");
 scanf("%f", &a1);
 printf("b1 = ");
 scanf("%f", &b1);
 printf("c1 = ");
 scanf("%f", &c1);
 printf("a2 = ");
 scanf("%f", &a2);
 printf("b2 = ");
 scanf("%f", &b2);
 printf("c2 = ");
 scanf("%f", &c2);

 float d = a1*b2-a2*b1;
 float dx = c1*b2-c2*b1;
 float dy = a1*c2-a2*c1;

 if (d != 0)
 {
  float x = dx/d;
        float y = dy/d;
  printf("He phuong trinh co nghiem duy nhat x = %f; y = %f", x, y);
 }else
 {
  if (dx != 0 && dy != 0)
   printf("He phuong trinh vo nghiem");
  if (dx == 0 && dy == 0)
   printf("He phuong trinh co vo so nghiem");
 }
}

//========================================
//Cach 2
#include <stdio.h>
#include <conio.h>

void GiaiPT(float,float,float,float,float,float);
void main()
{
 float a1,b1,c1;
 float a2,b2,c2;

 printf("a1 = ");
 scanf("%f", &a1);
 printf("b1 = ");
 scanf("%f", &b1);
 printf("c1 = ");
 scanf("%f", &c1);
 printf("a2 = ");
 scanf("%f", &a2);
 printf("b2 = ");
 scanf("%f", &b2);
 printf("c2 = ");
 scanf("%f", &c2);

 GiaiPT(a1,b1,c1,a2,b2,c2);
}

void GiaiPT(float d1, float e1, float f1, float d2, float e2, float f2)
{
 float d = d1*e2-d2*e1;
 float dx = f1*e2-f2*e1;
        float dy = d1*f2-d2*f1;

 if (d != 0)
 {
  float x = dx/d;
  float y = dy/d;
  printf("He phuong trinh co nghiem duy nhat x = %f; y = %f", x, y);
 }else
 {
  if (dx != 0 && dy != 0)
   printf("He phuong trinh vo nghiem");
  if (dx == 0 && dy == 0)
   printf("He phuong trinh co vo so nghiem");
 }
}

Friday, April 17, 2015

Bài 64

Bài 64: Giải phương trình bậc 2: ax^2 + bx + c = 0 (a # 0)

//========================================
// Cach 1
#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
 float a,b,c;
 printf("a = ");
 scanf("%f", &a);
 printf("b = ");
 scanf("%f", &b);
 printf("c = ");
 scanf("%f", &c);
 float D = b*b - 4*a*c;
 if (D <=0)
  if (D == 0)
  {
   float x0 = -b/(2*a); // Luu y la phai co dau dong mo ngoac don (2*a)
   printf("Phuong trinh co nghiem duy nhat x0 = %f", x0);
  }
  else
  {
   printf("Phuong trinh vo nghiem");
  }
 else
 {
  float x1 = (-b-sqrt(D))/(2*a);
  float x2 = (-b+sqrt(D))/(2*a);
  printf("x1 = %f", x1);
  printf("x2 = %f", x2);
 }
}

//========================================
//Cach 2
#include <stdio.h>
#include <conio.h>
#include <math.h>

void GiaiPT(float,float,float);
void main()
{
 float a,b,c;
 printf("a = ");
 scanf("%f", &a);
 printf("b = ");
 scanf("%f", &b);
 printf("c = ");
 scanf("%f", &c);
 GiaiPT(a,b,c);
}

void GiaiPT(float d, float e, float f)
{
 float D = e*e - 4*d*f;
 if (D <=0)
  if (D == 0)
  {
   float x0 = -e/(2*d); // Luu y la phai co dau dong mo ngoac don (2*a)
   printf("Phuong trinh co nghiem duy nhat x0 = %f", x0);
  }
  else
  {
   printf("Phuong trinh vo nghiem");
  }
 else
 {
  float x1 = (-e-sqrt(D))/(2*d);
  float x2 = (-e+sqrt(D))/(2*d);
  printf("x1 = %f", x1);
  printf("x2 = %f", x2);
 }
}

Bài 63

Bài 63: Giải phương trình bậc nhất một ẩn: ax + b = 0

//========================================
// Cach 1
#include <stdio.h>
#include <conio.h>

void main()
{
    float a,b;
    printf("a = ");
    scanf("%f", &a);
    printf("b = ");
    scanf("%f", &b);
    if (a == 0)
        if (b == 0)
            printf("Phuong trinh vo so nghiem");
        else
            printf("Phuong trinh vo nghiem");
    else
    {
        float x = (float)-b/a;
        printf("x = %f", x);
    }
}

//========================================
//Cach 2
/*
#include <stdio.h>
#include <conio.h>

void GiaiPT(float,float);
void main()
{
    float a,b;
    printf("a = ");
    scanf("%f", &a);
    printf("b = ");
    scanf("%f", &b);
    GiaiPT(a,b);
}

void GiaiPT(float c, float d)
{
    if (c == 0)
        if (d == 0)
            printf("Phuong trinh co vo so nghiem");
        else
            printf("Phuong trinh vo nghiem");
    else
    {
        float x = -d/c;
        printf("x = %f", x);
    }
}
*/

Monday, April 13, 2015

Bài 62

Bài 62: Tìm bội chung nhỏ nhất (BCNN) của 2 số nguyên dương a và b

- BCNN (a,b) = |a*b| / UCLN(a,b)
//========================================
//Cach 1

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
    int a, b;
    printf("a = ");
    scanf("%d", &a);
    printf("b = ");
    scanf("%d", &b);
    int m, n;
    m = abs(a);
    n = abs(b);
    while (m*n!=0)
    {
        if (m > n)
            m = m - n;
        else
            n = n - m;
    }
    int kq = (abs(a*b)) / (m+n);
    printf("BCNN = %d", kq);
}

//========================================
//Cach 2
#include <stdio.h>
#include <conio.h>
#include <math.h>

int BCNN(int,int);
void main()
{
    int a, b;
    printf("a = ");
    scanf("%d", &a);
    printf("b = ");
    scanf("%d", &b);
    int kq = BCNN(a,b);
    printf("BCNN = %d", kq);
}

int BCNN(int c, int d)
{
    int m = abs(c);
    int n = abs(d);
    while (m*n!=0)
    {
        if (m > n)
            m = m - n;
        else
            n = n - m;
    }
    return (abs(c*d)/(m+n));
}

Sunday, April 12, 2015

Saturday, April 11, 2015

Bài 61

Bài 61: Tìm ước chung lớn nhất (UCLN) của 2 số a và b

- Ước chung lớn nhất của 2 số là số lớn nhất mà cả 2 số đó đều chia hết
//========================================
//Cach 1

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
    int a, b;
    printf("a = ");
    scanf("%d", &a);
    printf("b = ");
    scanf("%d", &b);
    a = abs(a);
    b = abs(b);
    while (a*b!=0)
    {
        if (a>b)
            a = a - b;
        else
            b = b -a;
    }
    printf("UCLN = %d", a+b);
}

//========================================
//Cach 2

#include <stdio.h>
#include <conio.h>
#include <math.h>

int UCLN(int,int);
void main()
{
    int a, b;
    printf("a = ");
    scanf("%d", &a);
    printf("b = ");
    scanf("%d", &b);
    int kq = UCLN(a,b);
    printf("UCLN = %d", kq);
}

int UCLN(int c, int d)
{
    c = abs(c);
    d = abs(d);
    while (c*d!=0)
    {
        if (c > d)
            c = c - d;
        else
            d = d - c;
    }
    return (c+d);
}

Friday, April 10, 2015

Bài 60

Bài 60: Hãy kiểm tra các chữ số của số nguyên dương n có giảm dần từ trái sang phải hay không

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>

void main()
{
    int n;
    scanf("%d", &n);
    int flag = 1;
    for(; n>=10; n=n/10)
    {
        int dv = n%10;
        int hc = (n/10)%10;
        if (hc < dv)
        {
            flag = 0;
        }
    }
    if (flag == 1)
    {
        printf("Co giam dan tu trai sang phai");
    }else
    {
        printf("Khong giam dan tu trai sang phai");
    }
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>

int KiemTra(int);
void main()
{
    int n;
    scanf("%d", &n);
    int kq = KiemTra(n);
    if (kq == 1)
    {
        printf("Co giam dan tu trai sang phai");
    }else
    {
        printf("Khong giam dan tu trai sang phai");
    }
}

int KiemTra(int k)
{
    int flag = 1;
    for(; k>=10; k=k/10)
    {
        int dv = k%10;
        int hc = (k/10)%10;
        if (hc < dv)
        {
            flag = 0;
        }
    }
    return flag;
}
*/

Bài 59

Bài 59: Hãy kiểm tra các chữ số của số nguyên dương n có tăng dần từ trái sang phải hay không

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>

void main()
{
    int n;
    scanf("%d", &n);
    int flag = 1;
    for(; n>=10; n=n/10)
    {
        int dv = n%10;
        int hc = (n/10)%10;
        if (hc > dv)
        {
            flag = 0;
        }
    }
    if (flag == 1)
    {
        printf("Co tang dan tu trai sang phai");
    }else
    {
        printf("Khong tang dan tu trai sang phai");
    }
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>

int KiemTra(int);
void main()
{
    int n;
    scanf("%d", &n);
    int kq = KiemTra(n);
    if (kq == 1)
    {
        printf("Co tang dan tu trai sang phai");
    }else
    {
        printf("Khong tang dan tu trai sang phai");
    }
}

int KiemTra(int k)
{
    int flag = 1;
    for(; k>=10; k=k/10)
    {
        int dv = k%10;
        int hc = (k/10)%10;
        if (hc > dv)
        {
            flag = 0;
        }
    }
    return flag;
}
*/

Bài 58

Bài 58: Hãy kiểm tra số nguyên dương n có phải là số đối xứng hay không

- Số đối xứng là số bằng với giá trị đảo ngược của chính nó
- Ví dụ 1: 131 =>Số đối xứng
- Ví dụ 2: 2442 =>Số đối xứng
- Ví dụ 3: 3535 =>Số không đối xứng

 //========================================
//Cách 1

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
    int n;
    scanf("%d", &n);
    n = abs(n);
    int dn = 0;
    int t = n;
    while (t != 0)
    {
        int dv = t%10;
        dn = dn*10 + dv;
        t = t/10;
    }
    if (dn == n)
    {
        printf("Doi xung");
    }else
    {
        printf("Khong doi xung");
    }
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>
#include <math.h>

int ktdx(int);
void main()
{
    int n;
    scanf("%d", &n);
    int kq = ktdx(n);
    if (kq == 1)
    {
        printf("Doi xung");
    }else
    {
        printf("Khong doi xung");
    }
}

int ktdx(int k)
{
    k = abs(k);
    int dn = 0;
    for(int t=k; t!=0; t=t/10)
    {
        int dv = t%10;
        dn = dn*10 + dv;
    }
    if (dn == k)
    {
        return 1;
    }
    return 0;
}
*/

Bài 57

Bài 57: Hãy kiểm tra số nguyên dương n có toàn chữ số chẵn hay không

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>

void main()
{
    int n;
    scanf("%d", &n);
    int flag = 1;
    int t = n;
    while (t != 0)
    {
        int dv = t%10;
        if (dv%2 != 0)
        {
            flag = 0;
        }
        t = t/10;
    }
    if (flag == 1)
    {
        printf("Toan chan");
    }else
    {
        printf("Khong toan chan");
    }
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>

int ToanChan(int);
void main()
{
    int n;
    scanf("%d", &n);
    int kq = ToanChan(n);
    if (kq == 1)
    {
        printf("Toan chan");
    }else
    {
        printf("Khong toan chan");
    }
}

int ToanChan(int k)
{
    int flag = 1;
    for(int t=k; t!=0; t=t/10)
    {
        int dv = t%10;
        if (dv%2 != 0)
        {
            flag = 0;
        }
    }
    return flag;
}
*/

Bài 56

Bài 56: Hãy kiểm tra số nguyên dương n có toàn chữ số lẻ hay không

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>

void main()
{
    int n;
    scanf("%d", &n);
    int flag = 1;
    int t = n;
    while (t != 0)
    {
        int dv = t%10;
        if (dv%2 == 0)
        {
            flag = 0;
        }
        t = t/10;
    }
    if (flag == 1)
    {
        printf("Toan le");
    }else
    {
        printf("Khong toan le");
    }
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>

int ToanLe(int);
void main()
{
    int n;
    scanf("%d", &n);
    int kq = ToanLe(n);
    if (kq == 1)
    {
        printf("Toan le");
    }else
    {
        printf("Khong toan le");
    }
}

int ToanLe(int k)
{
    int flag = 1;
    for(int t=k; t!=0; t=t/10)
    {
        int dv = t%10;
        if (dv%2 == 0)
        {
            flag = 0;
        }
    }
    return flag;
}
*/

Bài 55

Bài 55: Hãy đếm số lượng chữ số đầu tiên của số nguyên dương n

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
    int n;
    scanf("%d", &n);
    int dt = abs(n);
    while (dt >= 10)
    {
        dt = dt/10;
    }
   
    int dem = 0;   
    for(int t=n; t!=0; t=t/10)
    {
        int dv = t%10;
        if (dv == dt)
        {
            dem++;
        }
    }
    printf("%d", dem);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>
#include <math.h>

int DemDauTien(int);
void main()
{
    int n;
    scanf("%d", &n);
    int kq = DemDauTien(n);
    printf("%d", kq);
}

int DemDauTien(int k)
{
    int dt = abs(k);
    while (dt >= 10)
    {
        dt = dt/10;
    }
   
    int dem = 0;   
    for(int t=k; t!=0; t=t/10)
    {
        int dv = t%10;
        if (dv == dt)
        {
            dem++;
        }
    }
    return dem;
}
*/

Bài 54

Bài 54: Hãy đếm số lượng chữ số nhỏ nhất của số nguyên dương n

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
    int n;
    scanf("%d", &n);
    n = abs(n);
    int lc = n%10;
    int t = n;
    for(int t=n; t!=0; t=t/10)
    {
        int dv = t%10;
        if (dv < lc)
        {
            lc = dv;
        }
    }
    int dem = 0;
    for(int t=n; t!=0; t=t/10)
    {
        int dv = t%10;
        if (dv == lc)
        {
            dem++;
        }
    }
    printf("%d", dem);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>
#include <math.h>

int NhoNhat(int);
int DemNhoNhat(int,int);
void main()
{
    int n;
    scanf("%d", &n);
    int min = NhoNhat(n);
    int kq = DemNhoNhat(min,n);
    printf("%d", kq);
}

int NhoNhat(int k)
{
    k = abs(k);
    int dv = k%10;
    int lc = dv;
    for(int t=k; t!=0; t=t/10)
    {
        dv = t%10;
        if (dv < lc)
        {
            lc = dv;
        }
    }
    return lc;
}

int DemNhoNhat(int x, int k)
{
    int dem = 0;
    for (int t=k; t!=0; t=t/10)
    {
        int dv = t%10;
        if (dv == x)
        {
            dem++;
        }
    }
    return dem;
}
*/

Bài 53

Bài 53: Hãy đếm số lượng chữ số lớn nhất của số nguyên dương n

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
    int n;
    scanf("%d", &n);
    n = abs(n);
    int lc = n%10;
    int t = n;
    for(int t=n; t!=0; t=t/10)
    {
        int dv = t%10;
        if (dv > lc)
        {
            lc = dv;
        }
    }
    int dem = 0;
    for(int t=n; t!=0; t=t/10)
    {
        int dv = t%10;
        if (dv == lc)
        {
            dem++;
        }
    }
    printf("%d", dem);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>
#include <math.h>

int LonNhat(int);
int DemLonNhat(int,int);
void main()
{
    int n;
    scanf("%d", &n);
    int max = LonNhat(n);
    int kq = DemLonNhat(max,n);
    printf("%d", kq);
}

int LonNhat(int k)
{
    k = abs(k);
    int dv = k%10;
    int lc = dv;
    for(int t=k; t!=0; t=t/10)
    {
        dv = t%10;
        if (dv > lc)
        {
            lc = dv;
        }
    }
    return lc;
}

int DemLonNhat(int x, int k)
{
    int dem = 0;
    for (int t=k; t!=0; t=t/10)
    {
        int dv = t%10;
        if (dv == x)
        {
            dem++;
        }
    }
    return dem;
}
*/

Bài 52

Bài 52: Tìm chữ số nhỏ nhất của số nguyên dương n

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
    int n;
    scanf("%d", &n);
    n = abs(n);
    int lc = n%10;
    int t = n;
    while (t != 0)
    {
        int dv = t%10;
        if (dv < lc)
        {
            lc = dv;
        }
        t = t/10;
    }
    printf("%d", lc);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>
#include <math.h>

int NhoNhat(int);
void main()
{
    int n;
    scanf("%d", &n);
    int kq = NhoNhat(n);
    printf("%d", kq);
}

int NhoNhat(int k)
{
    k = abs(k);
    int lc = k%10;
    for (int t=k; t!=0; t=t/10)
    {
        int dv = t%10;
        if (dv < lc)
        {
            lc = dv;
        }
    }
    return lc;
}
*/

Bài 51

Bài 51: Tìm chữ số lớn nhất của số nguyên dương n

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
    int n;
    scanf("%d", &n);
    n = abs(n);
    int lc = n%10;
    int t = n;
    while (t != 0)
    {
        int dv = t%10;
        if (dv > lc)
        {
            lc = dv;
        }
        t = t/10;
    }
    printf("%d", lc);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>
#include <math.h>

int LonNhat(int);
void main()
{
    int n;
    scanf("%d", &n);
    int kq = LonNhat(n);
    printf("%d", kq);
}

int LonNhat(int k)
{
    k = abs(k);
    int lc = k%10;
    for (int t=k; t!=0; t=t/10)
    {
        int dv = t%10;
        if (dv > lc)
        {
            lc = dv;
        }
    }
    return lc;
}
*/

Bài 50

Bài 50: Tìm chữ số đảo ngược của số nguyên dương n

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
    int n;
    scanf("%d", &n);
    int dn = 0;
    int t = abs(n);
    while (t != 0)
    {
        int dv = t%10;
        dn = dn*10 + dv;
        t = t/10;
    }
    printf("%d", dn);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>
#include <math.h>

int DaoNguoc(int);
void main()
{
    int n;
    scanf("%d", &n);
    int kq = DaoNguoc(n);
    printf("%d", kq);
}

int DaoNguoc(int k)
{
    int dn = 0;
    int t = abs(k);
    while (t != 0)
    {
        int dv = t%10;
        dn = dn*10 + dv;
        t = t/10;
    }
    return dn;
}
*/

Bài 49

Bài 49: Tìm chữ số đầu tiên của số nguyên dương n

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
    int n;
    scanf("%d", &n);
    int dt = abs(n);
    while (dt >= 10)
    {
        dt = dt/10;
    }
    printf("%d", dt);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>
#include <math.h>

int Dau(int);
void main()
{
    int n;
    scanf("%d", &n);
    int kq = Dau(n);
    printf("%d", kq);
}

int Dau(int k)
{
    int dt = abs(k);
    while (dt >= 10)
    {
        dt = dt/10;
    }
    return dt;
}
*/

Bài 48

Bài 48: Hãy tính tích các chữ số lẻ của số nguyên dương n

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>

void main()
{
    int n;
    scanf("%d", &n);
    long T = 1;
    int t = n;
    while (t != 0)
    {
        int dv = t%10;
        if (dv%2 != 0)
        {
            T = T * dv;
        }
        t = t/10;
    }
    printf("%ld", T);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>

long Tich(int);
void main()
{
    int n;
    scanf("%d", &n);
    long kq = Tich(n);
    printf("%ld", kq);
}

long Tich(int k)
{
    long T = 1;
    for (int t=k; t!=0; t=t/10)
    {
        int dv = t%10;
        if (dv%2 != 0)
        {
            T = T * dv;
        }
    }
    return T;
}
*/

Bài 47

Bài 47: Hãy tính tổng các chữ số chẵn của số nguyên dương n

 //========================================
//Cách 1

#include <stdio.h>
#include <conio.h>

void main()
{
    int n;
    scanf("%d", &n);
    int S = 0;
    int t = n;
    while (t != 0)
    {
        int dv = t%10;
        if (dv%2 == 0)
        {
            S = S + dv;
        }
        t = t/10;
    }
    printf("%d", S);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>

int Tong(int);
void main()
{
    int n;
    scanf("%d", &n);
    int kq = Tong(n);
    printf("%d", kq);
}

int Tong(int k)
{
    int S = 0;
    for (int t=k; t!=0; t=t/10)
    {
        int dv = t%10;
        if (dv%2 == 0)
        {
            S = S + dv;
        }
    }
    return S;
}
*/

Bài 46

Bài 46: Hãy đếm số lượng chữ số lẻ của số nguyên dương n

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>

void main()
{
    int n;
    scanf("%d", &n);
    int dem = 0;
    int t = n;
    while (t != 0)
    {
        int dv = t%10;
        if (dv%2 != 0)
        {
            dem++;
        }
        t = t/10;
    }
    printf("%d", dem);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>

int DemLe(int);
void main()
{
    int n;
    scanf("%d", &n);
    int kq = DemLe(n);
    printf("%d", kq);
}

int DemLe(int k)
{
    int dem = 0;
    for (int t=k; t!=0; t=t/10)
    {
        int dv = t%10;
        if (dv%2 != 0)
        {
            dem++;
        }
    }
    return dem;
}
*/

Bài 45

Bài 45: Hãy tính tích các chữ số của số nguyên dương n

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>

void main()
{
    int n;
    scanf("%d", &n);
    long T = 1;
    int t = n;
    while (t != 0)
    {
        int dv = t%10;
        T = T * dv;
        t = t/10;
    }
    printf("%ld", T);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>

long Tich(int);
void main()
{
    int n;
    scanf("%d", &n);
    long kq = Tich(n);
    printf("%ld", kq);
}

long Tich(int k)
{
    long T = 1;
    for (int t=k; t!=0; t=t/10)
    {
        int dv = t%10;
        T = T*dv;
    }
    return T;
}
*/

Bài 44

Bài 44: Hãy tính tổng các chữ số của số nguyên dương n

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>

void main()
{
    int n;
    scanf("%d", &n);
    int t = n;
    int S = 0;
    while (t != 0)
    {
        int dv = t%10;
        S = S + dv;
        t = t/10;
    }
    printf("%d", S);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>

int Tong(int);
void main()
{
    int n;
    scanf("%d", &n);
    int kq = Tong(n);
    printf("%d", kq);
}

int Tong(int k)
{
    int S = 0;
    for (int t=k; t!=0; t=t/10)
    {
        int dv = t%10;
        S = S + dv;
    }
    return S;
}
*/

Bài 43

Bài 43: Hãy đếm số lượng chữ số của số nguyên dương n

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>

void main()
{
    int n;
    scanf("%d", &n);
    int dem = 0;
    int t = n;
    while (t != 0)
    {
        dem++;
        t = t/10;
    }
    printf("%d", dem);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>

int Tong(int);
void main()
{
    int n;
    scanf("%d", &n);
    int kq = Tong(n);
    printf("%d", kq);
}

int Tong(int k)
{
    int dem = 0;
    for (int t=k; t!=0; t=t/10)
    {
        dem++;
    }
    return dem;
}
*/

Tuesday, April 7, 2015

Bài 42

Bài 42: Cho n là số nguyên dương. Hãy tìm giá trị nguyên dương k lớn nhất sao cho S(k) < n. Trong đó chuỗi S(k) được định nghĩa như sau: S(k) = 1 + 2 + 3 + ... + k

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>

void main()
{
    int n;
    scanf("%d", &n);
    int S = 0;
    int k = 0;
    while (S + (k+1) < n)
    {
        k = k + 1;
        S = S + k;
    }
    printf("%d", k);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>

int LonNhat(int);
void main()
{
    int n;
    scanf("%d", &n);
    int kq = LonNhat(n);
    printf("%d", kq);
}

int LonNhat(int l)
{
    int S = 0;
    int k = 0;
    while (S + (k+1) < l)
    {
        k = k + 1;
        S = S + k;
    }
    return k;
}
*/

Bài 41

Bài 41: Tính S(n) = có n dấu phân số

 //========================================
//Cách 1

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
    int n;
    scanf("%d", &n);
    float S = 1;
    int i = 1;
    while (i <= n)
    {
        S = (float)1/(1+S);
        i = i + 1;
    }
    printf("%f", S);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>
#include <math.h>

float PhanSo(int);
void main()
{
    int n;
    scanf("%d", &n);
    float kq = PhanSo(n);
    printf("%f", kq);
}

float PhanSo(int k)
{
    float S = 1;
    for (int i=1; i<=k; i++)
    {
        S = (float)1/(1+S);
    }
    return S;
}
*/

Bài 40

Bài 40: Tính S(x,n) = có n dấu căn

 //========================================
//Cách 1

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
    float x;
    scanf("%f", &x);
    int n;
    scanf("%d", &n);
    float S = 0;
    long T = 1;
    int i = 1;
    while (i <= n)
    {
        T = T * x;
        S = pow(T+S, (float)1/2);
        i = i + 1;
    }
    printf("%f", S);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>
#include <math.h>

float Can(float,int);
void main()
{
    float x;
    scanf("%f", &x);
    int n;
    scanf("%d", &n);
    float kq = Can(x,n);
    printf("%f", kq);
}

float Can(float y, int k)
{
    float S = 0;
    long T = 1;
    for (int i=1; i<=k; i++)
    {
        T = T * y;
        S = pow(T+S, (float)1/2);
    }
    return S;
}
*/

Monday, April 6, 2015

Bài 39

Bài 39: Tính S(n) = có n dấu căn

 //========================================
//Cách 1

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
    int n;
    scanf("%d", &n);
    float S = 0;
    long T = 1;
    int i = 1;
    while (i <= n)
    {
        T = T * i;
        S = pow(T+S, (float)1/(i+1));
        i = i + 1;
    }
    printf("%f", S);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>
#include <math.h>

float Can(int);
void main()
{
    int n;
    scanf("%d", &n);
    float kq = Can(n);
    printf("%f", kq);
}

float Can(int k)
{
    float S = 0;
    long T = 1;
    for (int i=1; i<=k; i++)
    {
        T = T * i;
        S = pow(T+S, (float)1/(i+1));
    }
    return S;
}
*/

Bài 38

Bài 38: Tính S(n) = có n dấu căn

//========================================
//Cách 1

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
    int n;
    scanf("%d", &n);
    float S = 0;
    int i = 1;
    while (i <= n)
    {
        S = pow(i+S, (float)1/(i+1));
        i = i + 1;
    }
    printf("%f", S);
}

//========================================
//Cách 2
/*
#include <stdio.h>
#include <conio.h>
#include <math.h>

float Can(int);
void main()
{
    int n;
    scanf("%d", &n);
    float kq = Can(n);
    printf("%f", kq);
}

float Can(int k)
{
    float S = 0;
    for (int i=1; i<=k; i++)
    {
        S = pow(i+S, (float)1/(i+1));
    }
    return S;
}
*/