game box tin - Chém code như chém gió

C

cuong276

OK! GOOD! VERY GOOD! Tớ có lời khen đó hj` hj` hj`. À mà đến lượt cậu ra đề kìa
 
M

mikelhpdatke

Bài 1 : Tổng các chữ số
Cho số nguyên dương n. VIết các số nguyên liên tiếp từ 1 tới n trong hệ thập phân để tạo ra một dãy các chữ số. Hãy tính tổng các chữ số của dãy.

Ví dụ : với n = 12, ta có dãy chữ số 123456789101112 với tổng là 51.

Test n=
12
123
2468
13579
12481632
23456789
9876543210
123123123123
123456789123456789
98765432100123456789
 
C

cuong276

Bài 1 : Tổng các chữ số
Cho số nguyên dương n. VIết các số nguyên liên tiếp từ 1 tới n trong hệ thập phân để tạo ra một dãy các chữ số. Hãy tính tổng các chữ số của dãy.

Ví dụ : với n = 12, ta có dãy chữ số 123456789101112 với tổng là 51.

Test n=
12
123
2468
13579
12481632
23456789
9876543210
123123123123
123456789123456789
98765432100123456789
Mấy số nhỏ thì OK còn mấy số to như zầy thì làm sao mà tính được
 
C

cuong276

Thế còn tính tổng thì sao? cái này số chữ số phải quá cả longint rồi đấy chứ
 
M

mikelhpdatke

Đó là vấn đề, bài không khó nhưng với số lớn, phải tìm cách lưu trữ nó dưới dạng nào đó. Mình đang nghiên cứu.
 
C

cuong276

Nghiên cứu??? Mình tưởng bạn làm được rồi. Thế thì cho mình nghiên cứu với nha.
 
C

cuong276

Mình làm chương trình như thế này nhưng nó không chạy. Mọi người xem thử sai chỗ nào nha.
Mã:
var c,so,k:string;
    dem:longint;
function cong2so(a,b:string):string;
var n,s,i,i1,i2,d,code:integer;
    s1,st:string;
begin
     while length(a)<>length(b) do
           begin
                if length(a)>length(b) then b:='0'+b;
                if length(a)<length(b) then a:='0'+a;
           end;
     d:=0;
     s1:='';
     for i:=length(a) to 1 do
         begin
              val(a[i],i1,code);
              val(b[i],i2,code);
              n:=i1+i2+d;
              s:=n mod 10;
              d:=n div 10;
              str(s,st);
              s1:=st+s1;
         end;
     if d=1 then
        begin
             str(d,st);
             s1:=st+s1;
        end;
     cong2so:=s1;
end;
begin
     write('nhap so: ') ;readln(so);
     k:='1';
     dem:=1;
     c:='1';
     while k<>so do
           begin
                k:=cong2so(k,c);
                dem:=dem+length(k);
           end;
     write('Tong la: ',dem);
     readln;
end.
 
1

11thanhkhoeo

Mã:
var  n, s: int64;   i:byte;
begin
write(' nhap n');
  readln(n);
  S:=45*(n div 9);
  for i:=1 to n mod 9 do
       s:=s+i;
  writeln(' tong =',s);
  readln;
end.

Hix hix đề khó không tưởng

test cuối
 
Last edited by a moderator:
C

cuong276

Bài 1 : Tổng các chữ số
Cho số nguyên dương n. VIết các số nguyên liên tiếp từ 1 tới n trong hệ thập phân để tạo ra một dãy các chữ số. Hãy tính tổng các chữ số của dãy.
Ví dụ : với n = 12, ta có dãy chữ số 123456789101112 với tổng là 51.

Test n=
12
123
2468
13579
12481632
23456789
9876543210
123123123123
123456789123456789
98765432100123456789
Cái gì thế này? Tính tổng các chữ số à??? Mình lại làm nhầm tính tổng số các chữ số mất rồi. Chết thật chết thật. Nhầm lẫn tai hại. ^:)^
 
M

mikelhpdatke

Đọc kỹ đề bài kẻo đi thi lại làm sai là phí công ôn thi đấy ;))
 
Last edited by a moderator:
Z

zjken1402

đề của người hok pít lập trình là gì nèk
viết thuật toán để tính tổng bình phương các số là bội của 2 và 5 trong dãy từ 1 tới 100
 
L

luffy_1998

đề của người hok pít lập trình là gì nèk
viết thuật toán để tính tổng bình phương các số là bội của 2 và 5 trong dãy từ 1 tới 100

cái pascal nhà e hỏng nên viết thế này cho nhanh
program binh_phuong;
uses crt;
var S, i:integer;
begin
S:=0;
for i:= 1 to 5 do if (i mod 2 = 0) or (i mod 5 = 0) then S:=S+i*i;
writeln('Tong la: ',S);
readln
end.

đề tiếp (cái này trong đề học kì của em)
viết chương trình nhập một mảng gồm 20 số nguyên, in mảng
sắp xếp lại mảng như sau: 10 số đầu tăng dần, 10 số sau giảm dần
in mảng sau sắp xếp
 
C

cuong276

cái pascal nhà e hỏng nên viết thế này cho nhanh
program binh_phuong;
uses crt;
var S, i:integer;
begin
S:=0;
for i:= 1 to 5 do if (i mod 2 = 0) or (i mod 5 = 0) then S:=S+i*i;
writeln('Tong la: ',S);
readln
end.

đề tiếp (cái này trong đề học kì của em)
viết chương trình nhập một mảng gồm 20 số nguyên, in mảng
sắp xếp lại mảng như sau: 10 số đầu tăng dần, 10 số sau giảm dần
in mảng sau sắp xếp
Cái gì thế này?? Yêu cầu tính tổng các số chia hết cho 2 hoặc 5 trong khoảng từ 1 đến 100 cơ mà. Sao chỉ chạy đến 5? Sửa lại thế này nha.
Mã:
var S, i:integer;
begin
    S:=0;
    for i:= 1 to 100 do if (i mod 2 = 0) or (i mod 5 = 0) then S:=S+i;
writeln('Tong la: ',S);
readln;
end.

Còn cái bài của cậu ra thì tớ làm như thế này nha

Mã:
var a:array[1..100]of integer;
    i,j,tg:integer;
begin
     for i:=1 to 20 do
         begin
              write('a[',i,']=');
              readln(a[i]);
         end;
     for i:=1 to 9 do
         for j:=i+1 to 10 do
             if a[i]>a[j] then
                begin
                     tg:=a[i];
                     a[i]:=a[j];
                     a[j]:=tg;
                end;
     for i:=11 to 19 do
         for j:=j+1 to 20 do
             if a[i]<a[j] then
                begin
                     tg:=a[i];
                     a[i]:=a[j];
                     a[j]:=tg;
                end;
     writeln('mang sau khi sap xep la');
     for i:=1 to 20 do write(a[i]:3);
     readln;
end.
 
T

thuydaucucai

Hai người viết toàn cái gì đấy!chả hiểu cái quái gì cả.Viết rõ hơn đc ko?
 
Last edited by a moderator:
C

cuong276

Không hiểu chỗ nào? Đây toàn là code của 2 bài tập mà ziken1402 và luffy_1998 ra chứ còn gì nữa.
 
C

cuong276

Đề ra tiếp nè: Viết chương trình nhập vào 1 số nguyên N. In ra màn hình các ước là số nguyên tố của số đó. Nếu không có ước nguyên tố nào thì in ra chữ KHONG CO
 
Top Bottom