Trang chủ Tin Học Lớp 10 Cho số k nguyên dương,bằng cách là giữ nguyên hoặc...

Cho số k nguyên dương,bằng cách là giữ nguyên hoặc xoá đi một số chữ số liên tiếp của k nhưng mà không xoá hoàn toàn,ta được một số mới,nếu số k bị chia thành

Câu hỏi :

Cho số k nguyên dương,bằng cách là giữ nguyên hoặc xoá đi một số chữ số liên tiếp của k nhưng mà không xoá hoàn toàn,ta được một số mới,nếu số k bị chia thành hai phần thì số mới được ghép lại từ hai phần này và giữ nguyên trật tự Yêu cầu:hãy xác định tất cả cách xoá để số k mới sau khi xoá chia hết cho 3 ( lưu ý là hai vị trí xoá khác nhau sẽ tạo ra hai cách xoá khác nhau,số k nguyên dương giữ nguyên cũng được coi là một cách xoá Với k

Lời giải 1 :

uses crt;
var s:string; n,a,d:longint; b:array[1..10000000]of longint;
procedure print;
var i,ss:longint;
begin
   ss:=0;
   for i:=1 to n do 
      if b[i]=1 then begin val(s[i],a); ss:=ss*10+a; end;
   if (ss<>0)and(ss mod 3=0) then inc(d);
end;
function dequy(a:longint):longint;
var i:longint;
begin
   if a=n+1 then print else
         for i:=0 to 1 Do
            begin
               b[a]:=i;
               dequy(a+1);
            end;
end;
begin 
clrscr;
   readln(s);
   n:=length(s);
   dequy(1);
   writeln(n);
readln
end.

Thảo luận

-- Bạn ơi còn cách nào khác không mình chưa học đệ quy,quay lui và vét cạn đâu ạ
-- Không nha bạn
-- À quy hoạch động á
-- Uh thế thôi vậy
-- ok bạn

Lời giải 2 :

uses crt;
var k:string;
    d:byte;
procedure check(k:string);
var i,t:byte;
begin
    if length(k)=0 then exit;
    if k[1]='0' then exit;
    t:=0;
    for i:=1 to length(k) do
        t:=t+ord(k[i])-48;
    if t mod 3=0 then
        begin
            inc(d);
        //    writeln(k);
        end;
end;
procedure try1(ii:byte;k:string);
var i:byte;
    s:string;
begin
    if length(k)=0 then exit;
    check(k);
    for i:=ii to length(k) do
        begin
            try1(i,copy(k,1,i-1)+copy(k,i+1,length(k)-i));
        end;
end;
begin
    clrscr;
    readln(k);
    d:=0;
    try1(1,k);
    writeln(d);
readln;
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ự 10

Lớp 10 - Năm thứ nhất ở cấp trung học phổ thông, năm đầu tiên nên có nhiều bạn bè mới đến từ những nơi xa hơn vì ngôi trường mới lại mỗi lúc lại xa nhà mình hơn. Được biết bên ngoài kia là một thế giới mới to và nhiều điều thú vị, một trang mới đang chò đợi chúng ta.

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