(pascal 11) Độ cao của dãy số.

naive_ichi

Cựu Mod Hóa
Thành viên
27 Tháng tư 2014
480
433
196
23
Tin 15-18 CTB
Tư tưởng của mình:
+ Biến mỗi số a thành xâu x:
var x:string;
str(a,x);​
+ Đặt sum:integer là tổng các chữ số trong số a.
sum:=0;
for i:=1 to length(x) do sum:=sum+x-48;


+ Giá trị của sum lúc này chính là độ cao của số đã cho.
Độ phức tạp cỡ O(11.N)
 

Nguyễn Thánh Tiền

Mr Favoirite 2012
Thành viên
2 Tháng mười 2010
1,931
782
324
Hà Nội
cO VUA

chia 10 thôi nhỉ

cái giới hạn kia chắc kiểu Qword 0...2^64-1 đủ đấy

Tư tưởng của mình:
+ Biến mỗi số a thành xâu x:
var x:string;
str(a,x);​
+ Đặt sum:integer là tổng các chữ số trong số a.
sum:=0;
for i:=1 to length(x) do sum:=sum+x-48;


+ Giá trị của sum lúc này chính là độ cao của số đã cho.
Độ phức tạp cỡ O(11.N)

ý tưởng này hay
 
  • Like
Reactions: naive_ichi

Lê Tuấn

Học sinh mới
Thành viên
10 Tháng ba 2017
6
1
6
24
Bài này em làm ra rồi :3
code:


Mã:
const fi='docao.inp'; fo='docao.out';
var i,n,j,t,sum:integer;
    A:array[1..1000] of longint;
    s:string;
    f:text;
procedure doc;
begin
   assign(f,fi);
   reset(f);
   readln(f,n);
   for i:=1 to n do
      read(f,A[i]);
   close(f);
end;
procedure xl;
begin
   assign(f,fo);
   rewrite(f);
   for i:=1 to n do
      begin
         str(A[i],s);
         sum:=0;
         for j:=1 to length(s) do
            begin
               val(S[j],t);
               sum:=sum+t;
            end;
         write(f,sum,' ');
      end;
      close(f);
end;
Begin
   doc;
   xl;
END.
 
Top Bottom