Bài tập 15 đến 20

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Bài tập 15 đến 20

Bài gửi  root on Tue Jan 11, 2011 10:00 am

Bài 15:
Nhập tử số và mẫu số của một phân số. Tìm dạng tối giản của phân số đó


Bài 16
Tìm các số có ba chữ số sao cho tổng lập phương của các chữ số bằng chính nó


Bài 17.
In các bảng cửu chương từ 1 đến 9 lên màn hình


Bài 18.
Một số nguyên dương được gọi là đối xứng nếu chữ số thứ nhất bằng chữ số cuối, chữ số thứ hai bằng chữ số gần cuối. Hãy nhập các số nguyên dương m, n (m<n). In ra các số nguyên dương đối xứng trong khoảng từ m đến n


Bài 19.
Tìm các số đối xứng bé hơn hoặc bằng n mà bình phương cũng là một số đối xứng

Bài 20.
Tìm 2 số nguyên tố có tổng bằng một số chẵn cho trước.

root
Admin

Tổng số bài gửi : 37
Join date : 03/01/2011
Age : 30
Đến từ : An Giang

Xem lý lịch thành viên http://www.huynhhai.co.cc

Về Đầu Trang Go down

Bài tập 15

Bài gửi  levientrinh_10TH on Tue Jan 11, 2011 11:47 pm

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
public static int UCLN(int a, int b)
{
while (a != b)
if (a > b)
a -= b;
else
b -= a;
return a;

}
static void Main(string[] args)
{
int tu, mau;
Console.WriteLine("Ban nhap u so");
tu = int.Parse(Console.ReadLine());
Console.WriteLine("Ban nhap mau so");
mau = int.Parse(Console.ReadLine());
Console.WriteLine("Phan so ban da nhap: " + tu + "/" + mau);
int ucln = UCLN(tu, mau);
//Chia tử số và mẫu số cho UCLN của tử số và mẫu số
tu /= ucln;
mau /= ucln;
Console.WriteLine("Phan so toi gian: " + tu + "/" + mau);
Console.ReadLine();
}
}
}

levientrinh_10TH

Tổng số bài gửi : 30
Join date : 05/01/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Bài tập 16

Bài gửi  levientrinh_10TH on Tue Jan 11, 2011 11:55 pm

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{

static void Main(string[] args)
{
Console.WriteLine("Dap an cua bai toan la");
//Giả sử a là hàng trăm
//b là hàng chục
//c là hàng đơn vị
//thì điều kiện của bài toán sẽ được diễn giải là:
//a^3+b^3+c^3=100*a+10*b+c
//Biến a là hàng trăm nên đi từ 1 đến 9
//Biến b, c đi từ 0 đến 9
for (int a = 1; a <= 9; a++)
{
for (int b = 0; b <= 9; b++)
{
for (int c = 0; c <= 9; c++)
{
if (Math.Pow(a, 3) + Math.Pow(b, 3) + Math.Pow(c, 3) == 100 * a + 10 * b + c)
Console.WriteLine(a+""+b+""+c);
}
}
}

Console.ReadLine();
}
}
}

levientrinh_10TH

Tổng số bài gửi : 30
Join date : 05/01/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Bài tập 17

Bài gửi  levientrinh_10TH on Wed Jan 12, 2011 12:01 am

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{

static void Main(string[] args)
{
for (int i = 1; i <= 9; i++)
{
Console.WriteLine();
for (int j = 1; j <=10; j++)
{
Console.WriteLine(i + " X " + j + " = "+ i * j);
}
}
Console.ReadLine();
}
}
}

levientrinh_10TH

Tổng số bài gửi : 30
Join date : 05/01/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài tập 15 đến 20

Bài gửi  Baif 18 on Wed Jan 12, 2011 12:36 am

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace ConsoleApplication1
{
class Program
{
public static int kiemtra(int n)
{
//Hàm trả về 1 nếu n là số có một chữ số
if (n / 10 == 0)
return 1;
//Khai báo hàng đợi chứa các phần tử của n
Queue s = new Queue();
int sophantu = 0;
while (n != 0)
{
sophantu += 1;
s.Enqueue(n % 10);
n /= 10;
}
//Khai báo mảng phụ chứa các phần tử của Queue
int[] a = new int[sophantu];
int i = 0;
foreach (int item in s)
{
a[i++] = item;
}
int j = sophantu-1;

for (int k = 0; k <sophantu/2; k++)
{
if (a[k] != a[j--])
return 0;
}
return 1;
}
static void Main(string[] args)
{
int m, n;
int dem = 0;
do
{
Console.WriteLine("Moi ban nhap m nguyen duong");
m = int.Parse(Console.ReadLine());
Console.WriteLine("Moi ban nhap n nguyen duong > m");
n = int.Parse(Console.ReadLine());
} while (m >= n||m<0||n<0);
Console.WriteLine("Danh sach cac so doi xung la");
for (int i = m; i <= n; i++)
{
if (kiemtra(i) == 1)
{
Console.Write(i + "\t");
dem += 1;
}
}
if (dem == 0)
Console.WriteLine("Khong co so doi xung nao trong khoang tu {0} den {1}", m, n);
Console.ReadLine();
}
}
}
//Bài này có một số kiến thức chưa học nên nếu có gì không hiểu, bạn hãy liên hệ với Lê Viễn Trình. Tôi sẽ giải thích kĩ cho.

Baif 18
Khách viếng thăm


Về Đầu Trang Go down

Bài tập 18

Bài gửi  levientrinh_10TH on Wed Jan 12, 2011 12:38 am

Bài tập 18 là của Lê Viễn Trình, nếu có gì khồn hiểu xin liên hệ với tôi.

levientrinh_10TH

Tổng số bài gửi : 30
Join date : 05/01/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Bài 19

Bài gửi  levientrinh_10TH on Wed Jan 12, 2011 12:46 am

//Bài này có một số kiến thức khá mới, nếu không hiểu xin liên hệ với Lê Viễn Trình
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace ConsoleApplication1
{
class Program
{
public static int kiemtra(int n)
{
if (n / 10 == 0)
return 1;
Queue s = new Queue();
int sophantu = 0;
while (n != 0)
{
sophantu += 1;
s.Enqueue(n % 10);
n /= 10;
}
int[] a = new int[sophantu];
int i = 0;
foreach (int item in s)
{
a[i++] = item;
}
int j = sophantu-1;

for (int k = 0; k <sophantu/2; k++)
{
if (a[k] != a[j--])
return 0;
}
return 1;
}
static void Main(string[] args)
{
int n;
int dem = 0;
do
{
Console.WriteLine("Moi ban nhap n nguyen duong ");
n = int.Parse(Console.ReadLine());
} while (n<0);
Console.WriteLine("Danh sach cac so doi xung la");
for (int i = 0; i <= n; i++)
{
if (kiemtra(i) == 1&&kiemtra(i*i)==1)
{
Console.Write(i + "\t");
dem += 1;
}
}
if (dem == 0)
Console.WriteLine("Khong co so doi xung nao thoa yeu cau de bai");
Console.ReadLine();
}
}
}

levientrinh_10TH

Tổng số bài gửi : 30
Join date : 05/01/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Góp ý

Bài gửi  levientrinh_10TH on Wed Jan 12, 2011 1:14 am

Bài tập 15, nếu trong trường hợp là biến tử số và mẫu số đều âm, thì không cần phải xét trị tuyệt đối, nếu một trong hai biến tử số và mẫu số là số âm, thì ta phải dùng hàm tính giá trị tuyệt đối Abs. Các bạn tự sửa nhé, ai có thể chỉnh sửa thì post lên. Tôi làm biếng quá à. Hi.. hi!

levientrinh_10TH

Tổng số bài gửi : 30
Join date : 05/01/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Bai 15

Bài gửi  tranquocmanh10th on Wed Jan 12, 2011 1:32 am

toi gop y lai bai cua ong trinh 1 chut : cach tim UCLN
gan : tu so = tri tuyet doi cua tu so
gan : mau so = tri tuyet doi cua mau so

cac ban thao khao co ji gop y kien ! Very Happy


using System;
using System.Collections.Generic;
using System.Text;

namespace Bai15
{
class Program
{
// tim Uoc CHung Lon Nhat
static public int UCLN(int tu, int mau)
{

tu = Math.Abs(tu);
mau = Math.Abs(mau);
while (tu != mau)
{
if (tu > mau)
{
tu = tu - mau;
}
else
mau = mau - tu;
}
return tu;

}

static void Main(string[] args)
{

int ts, ms;
Console.WriteLine("Ban nhap tu so");
ts = int.Parse(Console.ReadLine());
Console.WriteLine("Ban nhap mau so");
ms = int.Parse(Console.ReadLine());
Console.WriteLine("Phan so ban da nhap: " + ts + "/" + ms);
int ucln = UCLN(ts, ms);
//chia tu so av mau so cho UCLN
ts /= ucln;
ms /= ucln;
Console.WriteLine("Phan so toi gian: " + ts + "/" + ms);
Console.ReadLine();
}
}
}

tranquocmanh10th

Tổng số bài gửi : 2
Join date : 04/01/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài tập 15 đến 20

Bài gửi  chilinh on Wed Jan 12, 2011 1:37 am

ong manhn la thang chuyen sua code ?? lol!

chilinh

Tổng số bài gửi : 12
Join date : 10/01/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Cảnh Cáo

Bài gửi  nchnguyen on Wed Jan 12, 2011 1:47 am

Ê! Chỗ này không phải là nơi để chém gió nha!
Spam thì đi chỗ khác spam king

nchnguyen

Tổng số bài gửi : 3
Join date : 05/01/2011
Age : 25
Đến từ : An Phú

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài tập 15 đến 20

Bài gửi  chilinh on Wed Jan 12, 2011 1:49 am

ong tran quoc manh than men cua toi oi!!! bai cua ong noi la update cua ong trinh ma sao ong khong sua lai code ::: lo nhap vao mau so la so 0 vay sao chuong trinh xac dinh +_+ lol! lol! lol!

chilinh

Tổng số bài gửi : 12
Join date : 10/01/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài tập 15 đến 20

Bài gửi  vuongquocanhdh10th on Wed Jan 12, 2011 1:51 am

Cam on Manh!!!

vuongquocanhdh10th

Tổng số bài gửi : 1
Join date : 12/01/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài tập 15 đến 20

Bài gửi  chilinh on Wed Jan 12, 2011 6:56 pm

tranquocmanh10th đã viết:toi gop y lai bai cua ong trinh 1 chut : cach tim UCLN
//toi chi them vao dieu kien neu nhap mau so bang 0 thi hoi lai thoi
gan : tu so = tri tuyet doi cua tu so
gan : mau so = tri tuyet doi cua mau so

cac ban thao khao co ji gop y kien ! Very Happy


using System;
using System.Collections.Generic;
using System.Text;

namespace Bai15
{
class Program
{
// tim Uoc CHung Lon Nhat
static public int UCLN(int tu, int mau)
{

tu = Math.Abs(tu);
mau = Math.Abs(mau);
while (tu != mau)
{
if (tu > mau)
{
tu = tu - mau;
}
else
mau = mau - tu;
}
return tu;

}

static void Main(string[] args)
{

int ts, ms;
Console.WriteLine("Ban nhap tu so");
ts = int.Parse(Console.ReadLine());
hoilai: Console.WriteLine("Ban nhap mau so");
ms = int.Parse(Console.ReadLine());
if(mau == 0)
{
goto hoilai;
}
Console.WriteLine("Phan so ban da nhap: " + ts + "/" + ms);
int ucln = UCLN(ts, ms);
//chia tu so av mau so cho UCLN
ts /= ucln;
ms /= ucln;
Console.WriteLine("Phan so toi gian: " + ts + "/" + ms);
Console.ReadLine();
}
}
}
pirat pirat pirat pirat

chilinh

Tổng số bài gửi : 12
Join date : 10/01/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài tập 15 đến 20

Bài gửi  tranquocmanh10th on Wed Jan 12, 2011 9:12 pm

Linh a ! ăn cắp code thì cũng phải có nghệ thuật chút chứ em ? chứ mình gởi bài mà để tên người khac thì kỳ lắm ! Laughing

tranquocmanh10th

Tổng số bài gửi : 2
Join date : 04/01/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Bài 15

Bài gửi  NanoShita on Thu Jan 13, 2011 5:25 am

Bài 15:
Nhập tử số và mẫu số của một phân số. Tìm dạng tối giản của phân số đó

Bài này mình viết theo hướng đối tượng

Code:
using System;

namespace Bai15
{
    /// <summary>
    /// Lớp phân số
    /// --------------------------------
    /// Các thuộc tính
    ///    Tử số
    ///    Mẫu số
    ///--------------------------------
    /// Các phương thức
    ///    Nhập
    ///    Xuất
    ///    Tối giản
    /// </summary>
    class PhanSo
    {
        //Hàm độc lập UCLN để tìm ước chung lớn nhất của 2 số a, b
        public static int UCLN(int a, int b)
        {
            //Lấy trị tuyệt đối của a và b
            a = Math.Abs(a);
            b = Math.Abs(b);
            //Tìm ước chung lớn nhất
            while (a != b)
                if (a > b)
                {
                    a = a - b;
                }
                else
                    b = b - a;
            return a; //a là ước chung lớn nhất
        }

        //Mỗi phân số có 2 thuộc tính là tử số và mẫu số
        int tuso, mauso;
        //Phương thức khởi dựng không đối số
        public PhanSo()
        {
            tuso = 0;
            mauso = 1;
        }
        //Phương thức khởi dựng 1 đối số
        public PhanSo(int tu)
        {
            tuso = tu;
            mauso = 1;
        }
        //Phương thức khởi dựng 2 đối số
        public PhanSo(int tu, int mau)
        {
            tuso = tu;
            if (mau != 0)
                mauso = mau;
            else
                Console.WriteLine("Loi! mau so khong the bang khong");
        }
        //Phương thức nhập phân số
        public void Nhap()
        {
            //Nhập tử số
            Console.Write("Nhap tu so: ");
            tuso = int.Parse(Console.ReadLine());
            //Nhập mẫu số. Mẫu số phải khác 0
            do
            {
                Console.Write("Nhap mau so: ");
                mauso = int.Parse(Console.ReadLine());

            } while (mauso == 0);
        }
        //Phương thức xuất phân số
        public void Xuat()
        {
            if (tuso == 0)
                Console.Write("0");
            else
                if (tuso % mauso == 0)
                    Console.Write(tuso / mauso);
                else
                    Console.Write("({0} / {1})", tuso, mauso);
        }
        //Phương thức tối giản phân số
        public void ToiGian()
        {
            //Nếu tử số = 0 thì không cần tối giản.
            if (tuso != 0)
            {
                int UocChung = UCLN(tuso, mauso);
                tuso = tuso / UocChung;
                mauso = mauso / UocChung;
            }
        }

    }
    class Program
    {
        /// <summary>
        /// Chương trình chính
        /// </summary>
        static void Main()
        {
            //Tạo ra phân số a
            PhanSo a = new PhanSo();
            //Nhập tử số và mẫu số cho phân số a
            a.Nhap();
            //Tối giản phân số a
            a.ToiGian();
            //Xuất phân số a sau khi đã tối giản
            Console.Write("Phan so sau khi toi gian: ");
            a.Xuat();
            Console.ReadLine();
        }
    }
}

NanoShita

Tổng số bài gửi : 12
Join date : 12/01/2011
Age : 25
Đến từ : Long Xuyên, An Giang

Xem lý lịch thành viên

Về Đầu Trang Go down

Bài 20

Bài gửi  NanoShita on Thu Jan 13, 2011 7:03 am

Bài 20.
Tìm 2 số nguyên tố có tổng bằng một số chẵn cho trước.

+ Nhận xét:
Gọi số chẵn cho trước là n thì cả 2 số nguyên tố cần tìm phải nhỏ hơn n.
+ Ý tưởng:
- Tìm tất cả các số nguyên tố nhỏ hơn n và gán vào một mảng.
- Đến đây, ta chỉ việc thử cộng 2 số bất kỳ trong mảng đó xem có bằng n không.
Nếu bằng thì xuất 2 số đó ra.


Code:
using System;

namespace Bai20
{
    class Program
    {
        /// <summary>
        /// Hàm kiểm tra x có là số nguyên tố hay không
        /// Xét các trường hợp x không là số nguyên tố như:
        ///    x < 2
        ///    x chia hết cho bất kỳ số nào từ 2 đến căn bậc 2 của x
        /// Nếu x không thuộc các trường hợp đó thì x là số nguyên tố
        /// </summary>
        static bool IsNguyenTo(int x)
        {
            if (x < 2)
                return false; //x Không là số nguyên tố
            for (int i = 2; i <= Math.Sqrt(x); i++)
                //Nếu x chia hết cho bất kỳ số nào từ 2 đến căn bậc 2 của x
                //thì x không là số nguyên tố
                if (x % i == 0)
                    return false; //x Không là số nguyên tố
            return true; //x là số nguyên tố

        }
        /// <summary>
        /// Chương trình chính
        /// </summary>
        static void Main()
        {
            int n = 0;
            int i = 0, j = 0;
            //Nhập vào số chẵn n
            do
            {
                Console.Write("Nhap mot so chan: ");
                n = int.Parse(Console.ReadLine());
            } while (n % 2 != 0);
            //Tìm các số nguyên tố nhỏ hơn n và gán vào mảng NguyenTo
            int[] NguyenTo = { }; //Tạo mảng NguyenTo có 0 phần tử
            for (i = 2; i < n; i++)
                //Nếu i là số nguyên tố thì gán i vào mảng NguyenTo
                if (IsNguyenTo(i))
                {
                    //Tăng kích thước mảng NguyenTo thêm một phần tử
                    Array.Resize<int>(ref NguyenTo, NguyenTo.Length + 1);
                    //Gán i vào mảng NguyenTo
                    NguyenTo[NguyenTo.Length - 1] = i;
                }
            //Tìm 2 số nguyên tố có tổng bằng n
            bool IsFound = false; //IsFound cho biết đã tìm thấy rồi chưa
            i = 0;
            while (!IsFound && i < NguyenTo.Length)
            {
                j = i;
                while (!IsFound && j < NguyenTo.Length)
                {
                    if (NguyenTo[i] + NguyenTo[j] == n)
                    {
                        Console.Write("{0} + {1} = {2}", NguyenTo[i], NguyenTo[j], n);
                        IsFound = true; //Đã tìm thấy thoát khỏi 2 vòng lặp
                    }
                    j++;
                }
                i++;
            }
            //Nếu không tìm thấy thì thông báo
            if (!IsFound)
                Console.Write("Khong tim thay 2 so nguyen to co tong bang " + n);
            Console.ReadLine();
        }
    }
}


Được sửa bởi NanoShita ngày Fri Jan 14, 2011 12:59 am; sửa lần 1.

NanoShita

Tổng số bài gửi : 12
Join date : 12/01/2011
Age : 25
Đến từ : Long Xuyên, An Giang

Xem lý lịch thành viên

Về Đầu Trang Go down

Bài 20

Bài gửi  levientrinh_10TH on Thu Jan 13, 2011 11:31 pm

Lưu ý: các bạn xem code với tinh thần học hỏi. Nếu có gì không hiểu xin liên hệ với Lê Viễn Trình. SDT: 01274.916935 tongue Razz

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{

public static int nguyento(int n)
{
if (n == 2 || n == 3) return 1;
else
if (n <= 1)
return 0;
else
{
int dem = 0;
for (int i = 2; i <= n / 2; i++)
{
if (n % i == 0)
dem += 1;
}
if (dem == 0) return 1;
else
return 0;
}
}
static void Main(string[] args)
{
int n;
//Số nguyên tố nhỏ nhất là số 2, cho nên tổng nhỏ nhất sẽ là 4
do
{
Console.WriteLine("Ban nhap so nguyen duong chan n >= 4");
n = int.Parse(Console.ReadLine());
} while (n < 4 || n % 2 != 0);
int dem = 0;
//Xá định có bao số nguyên tố từ 2 đến n -1
for (int i = 2; i < n; i++)
{
if (nguyento(i) == 1)
{
dem += 1;
}
}
int[] a = new int[dem];
int h = 0;
//Lưu các số nguyên tố vào trong một mảng
for (int i = 2; i < n; i++)
{
if (nguyento(i) == 1)
a[h++] = i;
}

int thoa = 0;
//Cho biến chạy i đi từ 0 đến cuối, cho biến j chạy từ i đến cuối
//Mục đích của việc này nhằm mục đích xóa bỏ các cặp kết quả trùng nhau.
//Ví dụ: Nếu n =7. Kết quả có thể bị lặp là 2, 5 và 5,2
Console.WriteLine("Dap an cua de bai");
for (int i = 0; i < dem; i++)
{
for (int j = i; j < dem; j++)
{
if (a[i] + a[j] == n)
{
Console.WriteLine(a[i] + " " + a[j]);
thoa++;
}
}
}
if (thoa == 0)
Console.WriteLine("Khong co so nguyen to nao thoa man yeu cau de bai");
Console.ReadLine();
}
}
}

levientrinh_10TH

Tổng số bài gửi : 30
Join date : 05/01/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Bài tập 18 :Bài làm của Nguyễn An

Bài gửi  nguyenan on Fri Jan 14, 2011 7:08 am

root đã viết:
[b]Bài 18.

Một số nguyên dương được gọi là đối xứng nếu chữ số thứ nhất bằng chữ số cuối, chữ số thứ hai bằng chữ số gần cuối. Hãy nhập các số nguyên dương m, n (m<n). In ra các số nguyên dương đối xứng trong khoảng từ m đến n

Cách giải bài toán này nếu nói đơn giản lại để viết code như sau
Số đối xứng là số khi đạo ngược lại vẫn bằng số ban đầu . Ví dụ : 101 bạn hãy thử đảo ngược nó lại xem nó là bào nhiu ? và có phải số đều tiên bằng số cuối ?
Code để giải bài này chủ yếu ở chổ này :
Code:
int daoso(int num)
        {
            int temp= 0;
            while (num != 0)
            {
                temp = temp*10 + num % 10;
                num /= 10;
            }
            return temp;
        }
lấy giấy ra chia thử 1 số bạn sẽ hiểu đoạn code
Bài làm :
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace sodoixung
{
    class sodoixung
    {
        private        int n,m;
        public void nhap()
        {
            Console.WriteLine("Hay nhap vao so n :");
            n = int.Parse(Console.ReadLine());
            do
            {
                Console.WriteLine("Hay nhap vao so m :");
                m = int.Parse(Console.ReadLine());
            }
            while (n > m);
        }
        int daoso(int num)
        {
            int temp= 0;
            while (num != 0)
            {
                temp = temp*10 + num % 10;
                num /= 10;
            }
            return temp;
        }
        public void xuat()
        {
            Console.WriteLine("cac so doi xung : ");
            for (int i = n; i <= m; i++)
                if (daoso(i) == i)
                    Console.WriteLine(" " + i);

        }

    }
    class Program
    {
        static void Main(string[] args)
        {
            sodoixung so = new sodoixung();
            so.nhap();
            so.xuat();
            Console.ReadLine();
        }
    }
}
THuật toán sưu tầm từ : http://forums.congdongcviet.com/showthread.php?t=15011


Được sửa bởi nguyenan ngày Fri Jan 14, 2011 7:18 am; sửa lần 1.

nguyenan

Tổng số bài gửi : 27
Join date : 04/01/2011
Age : 25
Đến từ : Việt Nam

Xem lý lịch thành viên http://dh10th.co.cc

Về Đầu Trang Go down

Bài tập 19 :Bài làm của Nguyễn An

Bài gửi  nguyenan on Fri Jan 14, 2011 7:17 am

root đã viết:
Bài 19.
Tìm các số đối xứng bé hơn hoặc bằng n mà bình phương cũng là một số đối xứng

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace sodoixung
{
    class sodoixung
    {
        private int n;
        public void nhap()
        {
            Console.WriteLine("Hay nhap vao so n :");
            n = int.Parse(Console.ReadLine());
           
        }
        int daoso(int num)
        {
            int temp= 0;
            while (num != 0)
            {
                temp = temp*10 + num % 10;
                num /= 10;
            }
            return temp;
        }
        public void xuat()
        {
            Console.WriteLine("cac so doi xung : ");
            for (int i = 0; i <= n; i++)
                if (daoso(i) == i && daoso(i*i)==i*i)
                    Console.WriteLine(" " + i);

        }

    }
    class Program
    {
        static void Main(string[] args)
        {
            sodoixung so = new sodoixung();
            so.nhap();
            so.xuat();
            Console.ReadLine();
        }
    }
}

nguyenan

Tổng số bài gửi : 27
Join date : 04/01/2011
Age : 25
Đến từ : Việt Nam

Xem lý lịch thành viên http://dh10th.co.cc

Về Đầu Trang Go down

[b]Bai tap 15 cach #[/b]

Bài gửi  nguyenthanhhau on Sat Jan 15, 2011 12:39 am

Bài này mình viết hơi dài .Mình thấy bài bạn Trình viết ngắn và cũng dễ hiểu.
Bài này chủ yếu mình muốn làm phong phú thêm số cách giải để các bạn có thể tham khảo.
Yêu cầu bài toán:Rút gọn một phân số
ý tưởng:Bài này chủ yếu mình phân ra 4 trường hợp:
1/tu%mau==0.
2/mau%tu==0
3/tu>mau
4/mau>tu.
Đây là code của mình:

using System;
using System.Collections.Generic;
using System.Text;

namespace bai15
{
class PhanSo
{
private int tuSo;
private int mauSo;
public PhanSo()
{
this.tuSo = 1;
this.mauSo = 1;
}
//Ham nhap tu so va mau so
public void input()
{
Console.Write("Ban hay nhap tu so =");
this.tuSo = int.Parse(Console.ReadLine());

Console.Write("Ban hay nhap mau so =");
this.mauSo = int.Parse(Console.ReadLine());
}
//Ham xet tu va mau
public void KiemTraTuMau(int a,int b)
{
if (a % b == 0)
{
a = a / b;
b = 1;
}
else if (b % a == 0)
{
b = b / a;
a = 1;
}
else if(Math.Abs(a)>Math.Abs(b))
this.RutGon(ref a,ref b);
else
this.RutGon(ref b, ref a);
this.XetKetQua(a,b);
}
//Ham xet ket qua sau khi rut gon
public void XetKetQua(int x,int y)
{
if (x < 0 && y < 0)
{
x = Math.Abs(x);
y = Math.Abs(y);
}
this.tuSo = x;
this.mauSo = y;
}
//Ham rut gon
public void RutGon(ref int a,ref int b)
{
int t = Math.Abs((int)b / 2);
for (int i = 2; i <= t; i++)
{
if (a % i == 0 && b % i == 0)
{
a = a / i;
b = b / i;
t = Math.Abs(b / 2);
i = 1;
}
}
}
//Ham xet xem mau co bang 0 hay khong
static int MauKhacKhong(int a, int b)
{
if (b == 0)
throw new Exception();
return a / b;
}
//Ham chinh
static void Main(string[] args)
{
Console.WriteLine("Bai Toan:");
Console.WriteLine("Rut Gon mot phan so ");
PhanSo ps = new PhanSo();
ps.input();
try
{
MauKhacKhong(ps.tuSo, ps.mauSo);
ps.KiemTraTuMau(ps.tuSo, ps.mauSo);

Console.Write("\nKet qua sau khi rut gon: ");
Console.WriteLine(ps.tuSo + "/" + ps.mauSo);
}
catch
{
Console.WriteLine("Error!,Divide by Zero");
}
}
}
}


nguyenthanhhau

Tổng số bài gửi : 6
Join date : 05/01/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài tập 15 đến 20

Bài gửi  Sponsored content Today at 9:56 pm


Sponsored content


Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết