Bài tập 18(Cách khác)
Trang 1 trong tổng số 1 trang
Bài tập 18(Cách khác)
Sử dụng mãng động(List) và ngăn xếp(Stack).Các bạn cũng có thể sử dụng hàng đợi thay thế cho mãng động như bài 18 của bạn Trình cũng được.
Ý tưởng:
+B1:Lấy mãng động a,và Stack b chứa các số dư của n%10(tức chứa các chữ số của n)
+B2:So sánh :Lấy phần tử đầu tiên của b so sánh với phần tử đầu của a ,và lấy phần tử thứ 2 của b so sánh với phần tử thứ 2 của a.
Đây là code:
using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
namespace bai18
{
class SoDoiXung
{
private long n;
private long m;
//Khoi tao
public SoDoiXung()
{
this.n = 0;
this.m = 0;
}
//nhap lieu
public void input()
{
Console.Write("Ban hay nhap n =");
this.n = long.Parse(Console.ReadLine());
Console.Write("Ban hay nhap m =");
this.m = long.Parse(Console.ReadLine());
}
public bool Test(long a)
{
bool kq = false;
List<long> mang = new List<long>();
Stack st = new Stack();
for (long i = a; i>0; i=i/10)
{
mang.Add(i%10);
st.Push(i%10);
}
if ((mang[0] == (long)st.Pop()) && (mang[1] == (long)st.Pop()))
{
Console.WriteLine(a);
kq = true;
}
return kq;
//else
http://Console.WriteLine("Khong phai la so doi xung");
}
static void Main(string[] args)
{
Console.WriteLine("Bai Toan:");
Console.WriteLine("Tim so nguyen duong doi xung");
Console.WriteLine("Ban hay nhap trong khoang 10<m<n:");
SoDoiXung sdx = new SoDoiXung();
sdx.input();
try
{
if (sdx.m <= 10 || sdx.n <= 10)
throw new Exception();
Console.WriteLine("Cac so doi xung trong khoang [{0} ; {1}]", sdx.m, sdx.n);
int dem = 0;
for (long i = sdx.m; i <= sdx.n; i++)
{
if (sdx.Test(i))
dem++;
}
if (dem == 0)
{
Console.WriteLine("Thong bao!");
Console.WriteLine("So ban nhap trong khoang nay khong co so doi xung");
}
}
catch
{
Console.WriteLine("Ban da nhap sai, Thong bao!");
}
}
}
}
Ý tưởng:
+B1:Lấy mãng động a,và Stack b chứa các số dư của n%10(tức chứa các chữ số của n)
+B2:So sánh :Lấy phần tử đầu tiên của b so sánh với phần tử đầu của a ,và lấy phần tử thứ 2 của b so sánh với phần tử thứ 2 của a.
Đây là code:
using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
namespace bai18
{
class SoDoiXung
{
private long n;
private long m;
//Khoi tao
public SoDoiXung()
{
this.n = 0;
this.m = 0;
}
//nhap lieu
public void input()
{
Console.Write("Ban hay nhap n =");
this.n = long.Parse(Console.ReadLine());
Console.Write("Ban hay nhap m =");
this.m = long.Parse(Console.ReadLine());
}
public bool Test(long a)
{
bool kq = false;
List<long> mang = new List<long>();
Stack st = new Stack();
for (long i = a; i>0; i=i/10)
{
mang.Add(i%10);
st.Push(i%10);
}
if ((mang[0] == (long)st.Pop()) && (mang[1] == (long)st.Pop()))
{
Console.WriteLine(a);
kq = true;
}
return kq;
//else
http://Console.WriteLine("Khong phai la so doi xung");
}
static void Main(string[] args)
{
Console.WriteLine("Bai Toan:");
Console.WriteLine("Tim so nguyen duong doi xung");
Console.WriteLine("Ban hay nhap trong khoang 10<m<n:");
SoDoiXung sdx = new SoDoiXung();
sdx.input();
try
{
if (sdx.m <= 10 || sdx.n <= 10)
throw new Exception();
Console.WriteLine("Cac so doi xung trong khoang [{0} ; {1}]", sdx.m, sdx.n);
int dem = 0;
for (long i = sdx.m; i <= sdx.n; i++)
{
if (sdx.Test(i))
dem++;
}
if (dem == 0)
{
Console.WriteLine("Thong bao!");
Console.WriteLine("So ban nhap trong khoang nay khong co so doi xung");
}
}
catch
{
Console.WriteLine("Ban da nhap sai, Thong bao!");
}
}
}
}
nguyenthanhhau- Tổng số bài gửi : 6
Join date : 05/01/2011
Similar topics
» bai 1: minh lam hoi khac, cac ban cho y kien!
» Bài tập 15 đến 20
» Bài tập 41
» Phong cách lập trình
» Bài tập 15 đến 20
» Bài tập 41
» Phong cách lập trình
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|