Trang chủ Tin Học Lớp 8 Cho dãy gồm n số nguyên dương A1, A2, …,...

Cho dãy gồm n số nguyên dương A1, A2, …, An. Hãy đếm xem trong dãy có bao nhiêu cặp số ở vị trí khác nhau mà số này là bội của số kia hoặc ngược lại. Dữ liệu v

Câu hỏi :

Cho dãy gồm n số nguyên dương A1, A2, …, An. Hãy đếm xem trong dãy có bao nhiêu cặp số ở vị trí khác nhau mà số này là bội của số kia hoặc ngược lại. Dữ liệu vào: Vào từ tệp văn bản DEMBS.INP gồm: + Dòng đầu ghi số nguyên dương n (2 ≤ n ≤1000); + Dòng thứ hai ghi n số nguyên dương A1, A2, …, An có giá trị không vượt quá 1000. Kết quả: Ghi ra tệp văn bản DEMBS.OUT số lượng các cặp số thỏa điều kiện bài toán. Ví dụ: DEMBS.INP DEMBS.OUT 4 2 3 6 2 7

Lời giải 1 :

B là bội của a nếu B = N*A  ⇒ B chia hết cho A 

Dùng 2 vòng lặp tìm số chia hết cho nhau và co vào 2 chuỗi khác nhau. Tìm các kí tự trùng lập trong2 chuỗi và cuối cùng xuất ra số căp(độ dài chuỗi dài hơn);

Code

Program dembs;
Uses crt;
Var a:array[1..1000] of integer;
i,j,n:integer;
b,c,b1,c1:string;
fi,fo:text;
BEGIN
assign(fi,'dembs.inp');
assign(fo,'dembs.out');
reset(fi);
Readln(fi,n);
For i := 1 to n do read(fi,a[i]);
close(fi);
For i := 1 to n do
        For j := 1 to n do if j mod i = 0 then
        begin
        str(a[i],b1);
        str(a[j],c1);
        b := b + b1;
        c := c + c1;
        end;
For i := 1 to length(b) do
        for j := 1 to length(b) do
        if b[i]=b[j] then delete(b,j,1);
For i:=  1 to length(c) do
        for j := 1 to length(c) do
        if c[i]=c[j] then delete(c,j,1);
rewrite(fo);
If length(b) > length(c) then write(fo,length(b)) else write(fo,length(c));
close(fo);
END.

Thảo luận

-- Lúc nãy mình hiểu lầm bạn copy lại code này nha
-- Program dembs; Uses crt; Var a:array[1..1000] of integer; i,j,n:integer; b,c,b1,c1:string; fi,fo:text; BEGIN assign(fi,'dembs.inp'); assign(fo,'dembs.out'); reset(fi); Readln(fi,n); For i := 1 to n do read(fi,a[i]); close(fi); For i := 1 to n-1 do ... xem thêm
-- https://hoidap247.com/cau-hoi/3745319 help bai nay voiii
-- co nguoi lam nhung khong hieu lam
-- bạn à :)) bạn phải lưu ý cái chỗ là: "có bao nhiêu cặp số ở vị trí khác nhau" nghĩa là đếm cặp số i, j (i <> j) sao cho a[i] mod a[j] = 0 or a[j] mod a[i] = 0 chứ không phải là "tìm tổng độ dài của các số (là bội của số khác)" :))
-- https://hoidap247.com/cau-hoi/3837653
-- https://hoidap247.com/cau-hoi/3858038
-- https://hoidap247.com/cau-hoi/4034334

Lời giải 2 :

uses crt;
var f:text; n,i,j,d:longint; a:array[1..10000] of longint;
begin
clrscr;
   assign(f,'DEMBS.INP');reset(f);
      readln(f,n);
      for i:=1 to n do read(f,a[i]);
   close(f);
   assign(f,'DEMBS.OUT');rewrite(f);
      for i:=1 to n-1 do
         for j:=i+1 to n do
            begin
               if a[i] mod a[j]=0 then d:=d+1;
               if a[j] mod a[i]=0 then d:=d+1;
            end;
      writeln(f,d);
   close(f);
end.

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK