Tin học Viết chương trình tìm ƯCLN

minhloveftu

Học sinh tiêu biểu
Thành viên
15 Tháng một 2019
3,097
2,567
501
Quảng Trị
Trường Đời
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

1. Viết chương trình tìm ƯCLN của 2 số nguyên dương a,b.
2. Viết chương trình nhập vào 1 số nguyên dương N. Hãy cho biết N có bao nhiêu chữ số.
Mình đang học cấu trúc lặp nên mong các bạn giúp theo cấu trúc đó nhé
 

quân pro

Cựu CTV Confession
Thành viên
22 Tháng bảy 2017
1,262
3,224
356
Hà Nội
THPT Trần Phú - Hoàn Kiếm
2. Viết chương trình nhập vào 1 số nguyên dương N. Hãy cho biết N có bao nhiêu chữ số.
n là input, a là output

while (n > 0){
n % 10;
a++;

if (n == 0){ break vòng lặp} }

Xuất a :p

1. Viết chương trình tìm ƯCLN của 2 số nguyên dương a,b.
a , b input c là output

for ( int i = 1 ; i < b ; i++ ) {
if ( a % i == 0 && b % i == 0 ){
i = c
}

}
xuất c :p


Code lỗi báo mình nha
 

Sir Stalker

Học sinh
Thành viên
4 Tháng một 2020
149
122
46
19
Gia Lai
THCS
n là input, a là output

while (n > 0){
n % 10;
a++;

if (n == 0){ break vòng lặp} }

Xuất a :p


a , b input c là output

for ( int i = 1 ; i < b ; i++ ) {
if ( a % i == 0 && b % i == 0 ){
i = c
}

}
xuất c :p


Code lỗi báo mình nha
Câu 1 có thể áp dụng ý tưởng thuật toán Euclide
Nếu a> b thì gán a bằng a -b
Nếu b> a thì gán b bằng b-a
Vòng lặp kết thúc khi a = b
Cách này tốn ít thời gian hơn
 
  • Like
Reactions: quân pro

minhloveftu

Học sinh tiêu biểu
Thành viên
15 Tháng một 2019
3,097
2,567
501
Quảng Trị
Trường Đời
n là input, a là output

while (n > 0){
n % 10;
a++;

if (n == 0){ break vòng lặp} }

Xuất a :p


a , b input c là output

for ( int i = 1 ; i < b ; i++ ) {
if ( a % i == 0 && b % i == 0 ){
i = c
}

}
xuất c :p


Code lỗi báo mình nha
Câu 1 có thể áp dụng ý tưởng thuật toán Euclide
Nếu a> b thì gán a bằng a -b
Nếu b> a thì gán b bằng b-a
Vòng lặp kết thúc khi a = b
Cách này tốn ít thời gian hơn
Hai cách này mình đọc mà không hiểu cái gì cả @@
 

Sir Stalker

Học sinh
Thành viên
4 Tháng một 2020
149
122
46
19
Gia Lai
THCS
Hai cách này mình đọc mà không hiểu cái gì cả @@
Bạn dựa trên nhận xét a chia hết cho d, b chia hết cho d thì a- b chia hết cho d. Từ đó ta có ý tưởng liên tục rút số a và b về các khoảng hiệu nhỏ hơn, cho tới lúc bằng nhau (tức không rút được nữa) thì kq nhận được là UCLN
Còn cách trên là cho ucln của chúng ló chạy tới khi bằng 1 trong 2 số, số lớn nhất thỏa a chia hết cho i và b chia hết cho i là UCLN
 
Top Bottom