kiem tien, kiem tien online, kiem tien truc tuyen, kiem tien tren mang
Monday, October 31, 2011

Một trong những cách biểu diễn số khá phổ biến trong các đồng hồ điện tử là sử dụng que diêm.
Với số lượng que diêm cho trước, hãy xác định số nhỏ nhất  và số lớn nhất mà bạn có thể biểu diễn được. Chú ý bạn không được để thừa que diêm nào khi xếp.

Số que diêm                
chữ số biểu diễn
các chữ số sử dụng cho  MIN

2
1
1
3
7
7
4
4
4
5
2,3,5
2
6
6,9,0
0
7
8
8

Nhận xét:

1)      Số nhỏ nhất = ít chữ số nhất  và trong các số đó có giá trị MIN ó phải chú ý tới  các chữ số cần nhiêu que diêm nhất.

2)      Số lớn nhất = nhiều chữ số nhất và trong các số đó có giá trị MAX ó xét tới các chữ số cần ít que diêm nhất.

Hàm 1: Tìm MAX
Bắt đầu xác định số lượng số 1 lớn nhất có thể có ( chiếm 2 que diêm – ít nhất)
Số que diêm dư ra là = Số que diêm mod 2 ={0,1}

Th1: Dư 0 => tất cả các chữ số đều là 1
Th2: Dư 1, chữ số đàu tiên  bằng số 7 ( chiếm 3 que diêm)

Hàm 2: Tìm MIN

Bắt đầu xác định số lượng số 8 lớn nhất có thể có ( chiếm 7 que diêm – nhiều nhất)

Số que diêm dư ra = Số que diêm mod  7 = {0,1,2,3,4,5,6}
+ Nếu không dư ( =0) tra về giá trị MIN
+Dư 1: Bỏ bớt 1 số 8 thay thế bằng số 0 và 1 ( cần 8 que)
+Dư 2 -> 6: thay the số 8 bằng các sô tương ứng ( 1,7,4,2,0)


#include<iostream>
#include<fstream.h>
using namespace std;

void max(int n)
{
cout<<" ";
if(n%2)cout<< 7;
for( int i =1;i< n/2;i++) cout<<1;


}

void min(int n)
{

int a[7] = {8,10,1,7,4,2,0 };
cout<< a[n%7];
for(int i =1;i< n/7;i++)cout<< 8;
}
int main()
{
int n, sum;
// sum = so bo so
ifstream f;
f.open ("C.txt");

f >> sum;
for(int i=1;i<=sum;i++)
{
f >>n;
min(n); max(n);
cout<< endl;
}
system("pause");
return 0;
}

0 comments:

Post a Comment

domain, domain name, premium domain name for sales

Popular Posts