K
Khách

Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.

19 tháng 9 2020

const fi='calc.inp';
fo='calc.out';
var f1,f2:text;
max,a,b,c,d1,t1,i,x,y,d2,t2,d,e,d3,t3,f,g:integer;
st1,st2,st3:string;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,a,b,c);
str(a,st1);
str(b,st2);
str(c,st3);
d1:=length(st1);
t1:=1;
for i:=1 to d1 do
begin
val(st1[i],x,y);
t1:=t1*x;
end;
d2:=length(st2);
t2:=1;
for i:=1 to d2 do
begin
val(st2[i],d,e);
t2:=t2*d;
end;
d3:=length(st3);
t3:=1;
for i:=1 to d3 do
begin
val(st3[i],f,g);
t3:=t3*f;
end;
max:=t1;
if max<t2 then max:=t2;
if max<t3 then max:=t3;
writeln(f2,max);
close(f1);
close(f2);
end.

23 tháng 9 2020

thank bn!!!

7 tháng 10 2025
Bài toán yêu cầu tìm cách biểu diễn một số nguyên dương nn𝑛thành tổng của các số nguyên dương khác nhau sao cho tích của các số hạng là lớn nhất.
Để tích của các số hạng là lớn nhất, ta nên chọn các số hạng nhỏ nhất có thể, bắt đầu từ 2, 3, 4,...
Ta sẽ chọn các số hạng liên tiếp bắt đầu từ 2, cho đến khi tổng của chúng gần bằng nn𝑛.
Giả sử ta chọn các số hạng là 2,3,4,...,k2 comma 3 comma 4 comma point point point comma k2,3,4,...,𝑘. Tổng của chúng là (2+k)(k−1)2the fraction with numerator open paren 2 plus k close paren open paren k minus 1 close paren and denominator 2 end-fraction(2+𝑘)(𝑘−1)2.
Nếu n−∑i=2ki=0n minus sum under-script i equals 2 over-script k end-scripts i equals 0𝑛−𝑘𝑖=2𝑖=0, thì ta đã tìm được cách biểu diễn.
Nếu n−∑i=2ki>0n minus sum under-script i equals 2 over-script k end-scripts i is greater than 0𝑛−𝑘𝑖=2𝑖>0, ta sẽ phân bổ phần dư này cho các số hạng đã chọn, bắt đầu từ số hạng lớn nhất.
Step 2: Thuật toán
  1. Khởi tạo danh sách các số hạng terms rỗng.
  2. Khởi tạo sum_terms = 0current_num = 2.
  3. Lặp lại cho đến khi sum_terms + current_num > n:
    • Thêm current_num vào terms.
    • Cộng current_num vào sum_terms.
    • Tăng current_num lên 1.
  4. Tính phần dư remainder = n - sum_terms.
  5. Phân bổ phần dư remainder cho các số hạng trong terms:
    • Lặp lại từ cuối danh sách terms về đầu:
      • Nếu remainder > 0:
        • Tăng số hạng hiện tại lên 1.
        • Giảm remainder đi 1.
      • Nếu remainder == 0, dừng vòng lặp.
  6. Sắp xếp các số hạng trong terms theo thứ tự tăng dần.
Step 3: Ví dụ với n=10n equals 10𝑛=10
  1. Khởi tạo terms = [], sum_terms = 0, current_num = 2.
  2. sum_terms + 2 = 2 <= 10. terms = [2], sum_terms = 2. current_num = 3.
  3. sum_terms + 3 = 5 <= 10. terms = [2, 3], sum_terms = 5. current_num = 4.
  4. sum_terms + 4 = 9 <= 10. terms = [2, 3, 4], sum_terms = 9. current_num = 5.
  5. sum_terms + 5 = 14 > 10. Dừng lại.
  6. Phần dư remainder = 10 - 9 = 1.
  7. Phân bổ phần dư:
    • Số hạng cuối cùng là 4. Tăng lên 1 thành 5. remainder = 0.
    • Danh sách số hạng mới là [2, 3, 5].
  8. Kiểm tra: 2 + 3 + 5 = 10. Tích là 2×3×5=302 cross 3 cross 5 equals 302×3×5=30.
Answer: Bài toán yêu cầu tìm cách biểu diễn số nguyên dương nn𝑛thành tổng của các số nguyên dương khác nhau sao cho tích của chúng là lớn nhất.
Để giải quyết bài toán này, ta sẽ sử dụng thuật toán tham lam (greedy algorithm).
Ta sẽ chọn các số hạng là các số nguyên dương liên tiếp bắt đầu từ 2, cho đến khi tổng của chúng gần bằng nn𝑛. Phần dư còn lại sẽ được phân bổ cho các số hạng đã chọn, bắt đầu từ số hạng lớn nhất.
Sau khi thực hiện thuật toán, ta sẽ có danh sách các số hạng cần tìm.
13 tháng 10 2025

code : #include <bits/stdc++.h>

using namespace std;

int main() {

ios_base::sync_with_stdio(false);

cin.tie(NULL); cout.tie(NULL);

freopen("DANALYSE.INP","r",stdin);

freopen("DANALYSE.OUT","w",stdout);

long long n;

cin>>n;

long long num, a[1000009], m, i;

num=2;

while (num<=n){

m++;

a[m]=num;

n=n-num;

++num;}

i=m;

while (n > 0){

a[i]++;

i--;

if(!i)i=m;

n--;}

cout<<m<<endl;

for (i=1;i<=m;i++)

cout<<a[i]<<endl;

return 0;

}



6 tháng 10 2025

chỉ bt c++ :))

1.Số học sinh trường THCS Đông Mỹ tham gia học tập ngoại khóa tại làng dóm – Sóc Sơn – Hà Nội năm học 2019-2020 là N (0<N<1000). In ra màn hình các kết quả sau, mỗi kết quả trên một dòng. - Dòng 1:Tổng các chữ số của N. - Dòng 2:Các số nguyên tố nhỏ hơn tổng các chữ số của N. - Dòng 3:Tổng các số nguyên tố trong dòng 2 2.Cho hai số nguyên dương A và B thỏa mãn (20=<A<=50, 30<=B<=75).Bằng...
Đọc tiếp

1.Số học sinh trường THCS Đông Mỹ tham gia học tập ngoại khóa tại làng dóm – Sóc
Sơn – Hà Nội năm học 2019-2020 là N (0<N<1000). In ra màn hình các kết quả sau, mỗi
kết quả trên một dòng.
- Dòng 1:Tổng các chữ số của N.
- Dòng 2:Các số nguyên tố nhỏ hơn tổng các chữ số của N.
- Dòng 3:Tổng các số nguyên tố trong dòng 2

2.Cho hai số nguyên dương A và B thỏa mãn (20=<A<=50, 30<=B<=75).Bằng ngôn
ngữ lập trình em hãy in ra màn hình các kết quả sau.
- Dòng 1: Các số có hai chữ số chia hết cho 9.
- Dòng 2: Các số chính phương lớn hơn A và nhỏ hơn B.
- Dòng 3: Số nguyên tố lớn nhất nhỏ hơn B.

3.Nhập từ bàn phím một số nguyên dương N (0<N<105
). Em hãy dùng ngôn ngữ lập
trình in ra màn hình các kết quả sau, mỗi kết quả trên một dòng.
- Dòng 1: Số lượng các chữ số của N.
- Dòng 2: Tổng các chữ số của N.
- Dòng 3: Phân số tối giản của N và số đảo ngược của N.

4
31 tháng 3 2020

Bài 1:

uses crt;
var n,d,t,x,y,j,kt,i,t1,dem:integer;
st:string;
a:array[1..255]of integer;
begin
clrscr;
write('n='); readln(n);
if (0<n) and (n<1000) then
begin
{------------------------dong-1---------------------------}
str(n,st);
d:=length(st);
t:=0;
for i:=1 to d do
begin
val(st[i],x,y);
t:=t+x;
end;
writeln('tong cac chu so cua ',n,' la: ',t);
{----------------------dong-2----------------------------}
writeln('cac so nguyen to nho hon tong cac chu so cua ',n,' la: ');
dem:=0;
for i:=2 to t-1 do
begin
kt:=0;
for j:=2 to i-1 do
if i mod j=0 then kt:=1;
if kt=0 then
begin
write(i:4);
dem:=dem+1;
a[dem]:=i;
end;
end;
{----------------dong-3---------------------------}
writeln;
t1:=0;
for i:=1 to dem do
t1:=t1+a[i];
writeln('tong cac so nguyen to trong dong 2 la: ',t1);
end
else writeln('vui long nhap lai');
readln;
end.

Bài 2:

uses crt;
var a,b,i,dem,j,kt:integer;
c:array[1..100]of integer;
begin
clrscr;
write('a='); readln(a);
write('b='); readln(b);
if (20<=a) and (a<=50) and (30<=b) and (b<=75) then
begin
{------------------------dong-1--------------------------}
writeln('cac so co 2 chu so chia het cho 9 la:');
for i:=10 to 99 do
if i mod 9=0 then write(i:4);
{-----------------------dong-2--------------------------}
writeln;
writeln('cac so chinh phuong lon hon ',a,' va nho hon ',b,' la: ');
for i:=a+1 to b-1 do
if trunc(sqrt(i))=sqrt(i) then write(i:4);
{-----------------------dong-3---------------------------}
writeln;
dem:=0;
for i:=2 to b do
begin
kt:=0;
for j:=2 to i-1 do
if i mod j=0 then kt:=1;
if kt=0 then
begin
inc(dem);
c[dem]:=i;
end;
end;
writeln('so nguyen to lon nhat nho hon ',b,' la: ',c[dem]);
end
else writeln('vui long nhap lai');
readln;
end.

Bài 3:

uses crt;
var n,d,t,i,x,y:integer;
st:string;
begin
clrscr;
write('n='); readln(n);
if (0<n) and (n<105) then
begin
{---------------------------dong-1---------------------------}
str(n,st);
d:=length(st);
writeln('so luong cac chu so cua ',n,' la: ',d);
{---------------------------dong-2--------------------------}
t:=0;
for i:=1 to d do
begin
val(st[i],x,y);
t:=t+x;
end;
writeln('tong cac chu so cua ',n,' la: ',t);
{---------------------------dong-3------------------------}
writeln('phan so toi gian cua ',n,' la: 1/',n);
write('so dao nguoc cua ',n,' la: ');
for i:=d downto 1 do
write(st[i]);
end
else writeln('vui long nhap lai');
readln;
end.

31 tháng 3 2020

Câu 1:

Program hotrotinhoc;

var i,tog,n: integer;

function tong(x: integer): integer;

var k,t: longint;

begin

t:=0;

while x<>0 do

begin

k:=x mod 10;

t:=t+k;

x:=x div 10;

end;

tong:=t;

end;

function nt(a: integer): boolean;

var j: integer;

begin

nt:=true;

if (a=2) or (a=3) then exit;

nt:=false;

if (a=1) or (a mod 2=0) or (a mod 3=0) then exit;

j:=5;

while (j<=trunc(sqrt(a))) do

begin

if (a mod j=0) or (a mod (j+2)=0) then exit;

j:=j+6;

end;

nt:=true;

end;

begin

write('Nhap so nguyen N :'); readln(n);

writeln('Tong cac chu so cua N la :',tong(n));

write('Cac so nguyen to nho hon tong cac chu so cua N la :');

for i:=1 to tong(n) do if nt(i) then

begin

write(i,' ');

tog:=tog+i;

end;

writeln;

write('Tong cac so nguyen to trong dong 2 la :',tog);

readln

end.

18 tháng 10 2023

Ngôn ngữ: C++

#include <bits/stdc++.h>

using namespace std;
long long n;
long long minx=LLONG_MAX;
long long a[100000];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    for(int i=2;i<=n;i++){
        minx=min(minx,a[i]-a[i-1]);
    }
    cout<<minx;
    return 0;
}

18 tháng 10 2023

Dùng Pascal hộ mình ạ

 

27 tháng 2 2023

var A:

     array[1..n] of int64;

     i, n, count: integer;

begin

     write('Nhap so phan tu cua mang: ');

     readln(n);

     for i := 1 to n do

     begin

          write('Nhap phan tu thu ', i, ': ');

          readln(A[i]);

      end;

 

     count := 0;

     for i := 1 to n do

          if A[i] > 0 then

               count := count + 1;

     writeln('So luong cac so nguyen duong trong mang la: ', count); end.

4 tháng 4 2023

cứu m vs

 

2 tháng 7 2020

uses crt;

var n,d,i,t,x,y:integer;

st:string;

begin

clrscr;

write('Nhap n='); readln(n);

if n mod 2=0 then writeln('1')

else writeln('0');

str(n,st);

d:=length(st);

writeln('Cac chu so cua ',n,' la: ');

for i:=1 to d do

write(st[i]:4);

writeln;

t:=0;

for i:=1 to d do

begin

val(st[i],x,y);

t:=t+x;

end;

writeln('Tong cac chu so cua ',n,' la: ',t);

readln;

end.

17 tháng 7 2020

ok bạn

26 tháng 12 2021

a/ =SUM(A1:A5)=29

    =SUM(A1,A2,A3,A4,A5)=29

b/ =MAX(A1:A5)=9

     =MAX(A1,A2,A3,A4,A5)=9

26 tháng 12 2021

giúp mik với