viết chương trình tìm số tự nhiên n sao cho tổng các số tự nhiên liên tiếp từ 1 đến n là tổng lớn nhất nhỏ hơn 500
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.
uses crt;
var t,n:integer;
begin
clrscr;
t:=0;
n:=0;
while t<=10 do
begin
n:=n+1;
t:=t+n;
end;
writeln(t);
readln;
end.
câu 1:
uses crt;
var p,i:integer;
begin
clrscr;
p:=1;i:=1;while i<=5 do
begin
p:=p*i;i:=i+1;
end;
write(p);
readln;
end.
bai 2:
uses crt;var p,i:integer;begin clrscr; p:=1; i:=0; while i <=10 do begin
i:=i+1; if (i mod 2<>0) then p:=p*i; end; write(p); readln;end. bai 3:
uses crt;var n,i,p:integer;begin clrscr; write('nhap n: '); readln(n); i:=1; p:=1; while i<=n do begin if i mod 2=0 then p:=p*i; i:=i+1; end; write(p); readln;end.
Tổng của 2015 số tự nhiên từ 1 đến 2015 là:
(1+2015) x 2015 : 2 = 2031120
Tổng của n số cần chọn theo yêu cầu bài toán là:
2031120 : 3 = 677040
+Với n nhỏ nhất khi ta chon n số lớn nhất có thể để tổng bằng 677040
Ta dãy số liên tiếp từ: 2015, 2014 , 2013,… m sao cho tổng các số đó lớn nhất có thể nhưng không quá 677040
Dãy 2015, 2014, 2013,…,m có số số hạng là: (2015 - m) : 1 + 1 = 2016 – m(số hạng)
Dãy 2015, 2014, 2013,… ,m có tổng là: (2015 + m) x (2016 - m): 2 sao cho lớn nhất có thể nhưng không quá 677040.
Suy ra: ( m - 1) x m lớn hơn hoặc bằng 2708160
Ta tìm được m nhỏ nhất = 1647
Ta thấy dãy 2015, 2014, 2013,…,1647 có:
(2015-1647) :1+ 1 = 369 (số hạng) và tổng là:
(2015+1647) x ( 369 : 2) = 675639
Mà 677040 = 675639 + 1401
Vậy n nhỏ nhất là : 369+1 = 370
+ Với n lớn nhất: Ta chọn các số liên tiếp từ : 1,2,3,…, b sao cho tổng các số đó lớn nhất có thể nhưng không quá 677040
Dãy 1,2,3,4,…,b có b số hạng và có tổng là: b x (b+1) : 2 nhỏ hơn hoặc bằng 677040
Ta tìm được b lớn nhất =1163
Xét dãy số từ 1 đến 1163 là có tổng là:
1163 x 1164 : 2 = 676866
Tổng trên còn nhỏ hơn tổng của n là:
677040 – 676866 =174
Vậy nếu lấy 1164 – 174 = 990
Tổng n có nhiều chữ số nhất sẽ là :
1+2+3+….1164 – 990 = 677404
Vậy tổng n lớn nhất có số các số hạng là:
1164-1 = 1163 (Số hạng)
Đáp số: Số n nhỏ nhất: 370
Số n lớn nhất: 1163
Đáp số của bạn top scorer sai vì bạn nhầm ngay từ đầu. Tôi thắc mắc tại sao học sinh lớp 5 lại phải làm bài toán này. Bài này có lẽ chỉ hợp với các học sinh ít nhất là lớp 8. Muốn cho thành lớp 5 thì số 2015 phải nhỏ thôi.
Vì tổng của n số được chọn bằng 2 lần tổng các số còn lại nên tổng n số được chọn bằng 2/3 tổng tất cả các số từ 1 đến 2015, do đó tổng n số được chọn luôn bằng \(\frac{2}{3}\cdot\left(1+2+\cdots+2015\right)=\frac{2015\cdot2016}{3}=:m\). (Đặt số đó là m).
Giả sử các số được chọn là \(1\le x_1
Do tổng của n số gấp đôi tổng của các số còn lại nên tổng đó bằng 2/3 tổng các số từ 1 đến 2015.
Ta tính tổng đó: \(S=\frac{2}{3}\left(\frac{\left(2015+1\right).2015}{2}\right)=1354080.\)
Gọi n số thỏa mãn yêu cầu đề bài là \(1\le a_1< a_2< ...< a_n\le2015.\)
Ta thấy \(a_1\ge1;a_2\ge a_1+1=2;...;a_n\ge n.\)
Vậy thì để tồn tại nhiều số nhất thì ta chọn : \(a_1=1;a_2=2;...;a_{n-1}=n-1;a_n\)
Tính tổng (n -1) số đầu tiên: \(S_{n-1}=\frac{\left(n-1+1\right)\left(n-1\right)}{2}=\frac{n\left(n-1\right)}{2}\le1354080\)
Ta chọn n max thỏa mãn điều kiện bên trên. Vậy n = 1645.
Vậy n max là 1645 với dãy số:
\(\hept{\begin{cases}a_1=1;a_2=2;...;a_{1644}=1644\\a_{1645}=1354080-\frac{1645.1644}{2}=1890\end{cases}}\)
Tương tự: \(a_n\le2015;a_{n-1}\le a_n-1=2014;...\)
Để chọn được n min thì \(\hept{\begin{cases}a_n=2015;a_{n-1}=2014;...;a_2=2015-n+2.\\a_1\end{cases}}\)
Tổng n - 1 số là : \(S_{n-1}=\frac{\left(2015+2015-n+2\right)\left(n-1\right)}{2}=\frac{\left(4032-n\right)\left(n-1\right)}{2}< 1354080\)
Vậy n min = 852.
Khi đó \(\hept{\begin{cases}a_2=1165;a_3=1166;...;a_{852}=2015\\a_1=1354080-\frac{851.3180}{2}=990\end{cases}}\)
Vậy n max = 1645 và n min = 852.
Điểm mấu chốt là nhận ra \(\hept{\begin{cases}1\le a_1;2\le a_2;...\\2015\ge a_n;2014\ge a_{n-1};...\end{cases}}\)
Câu 1:
Program HOC24;
var i,p: integer;
t: longint;
begin
write('Nhap P: '); readln(p);
t:=0;
for i:=1 to p do if i mod 2<>0 then t:=t+i;
write('Tong cac so le la: ',t);
readln
end.
#include <bits/stdc++.h>
using namespace std;
long long s,i,n;
int main()
{
cin>>n;
s=0;
for (i=1; i<=n; i++)
if (i%3==0) s=s+i;
cout<<s;
return 0;
}
program tim_n;
uses crt;
var tong,n,i:word;
begin
clrscr;
n:=1;tong:=0;
while tong<500 do
begin
for i:=1 to n do tong:=tong+i;
if tong<500 then begin tong:=0;n:=n+1;end
else n:=n-1;
end;
write('so n thoa man dieu kien la:',n);
readln;
end.
uses crt;
var i,n,t:integer;
begin
clrscr;
write('Nhap n='); readln(n);
t:=0;
for i:=1 to 500 do
begin
t:=t+i;
if t>500 then
begin
writeln(i);
break;
end;
end;
readln;
end.