Turbo Pascal

xZ_

Хьёзь
ну во втором способе я сразу считаю кратные трем:
0+3+6+9+12.....
а в первом я прохожу все числа с проверкой
можно еше както зделать через формулу)) тока выводить надо
теоретически можно так:
допустим промежуток [m..n]
..
void main()
{
..
scanf("%d%d",&m,&n);
a1=(m%3==0)?m:m+3-m%3;
an=n-n%3;
S=(a1+an)*(a1-an+3)/6;
printf("S=%d",S);
..
}
решение в 3 строчки буквально..
п.с. S=(a1+an)*(an-a1+3)/6;
 
Останнє редагування:

Пух

كنت بلهاء
Модератор
теоретически можно так:
допустим промежуток [m..n]
..
void main()
{
..
scanf("%d%d",&m,&n);
a1=(m%3==0)?m:m+3-m%3;
an=n-n%3;
S=(a1+an)*(a1-an+3)/6;
printf("S=%d",S);
..
}
решение в 3 строчки буквально..
ну к именно к этой задаче, да, согласен, 2й вариант быстрей. Но для общего типа задач(типа найти суму елементов кратных 2,3 на промежутке) он не совсем подойдет.
п.с. о чем мы спорим, тут уровень начинающих
 

Cris

Member
ну к именно к этой задаче, да, согласен, 2й вариант быстрей. Но для общего типа задач(типа найти суму елементов кратных 2,3 на промежутке) он не совсем подойдет.
п.с. о чем мы спорим, тут уровень начинающих
))) ну а мы спорим кабутто не для начинающих))
 

xZ_

Хьёзь
ну к именно к этой задаче, да, согласен, 2й вариант быстрей. Но для общего типа задач(типа найти суму елементов кратных 2,3 на промежутке) он не совсем подойдет.
п.с. о чем мы спорим, тут уровень начинающих
моё мнение - чтоб не спорить советую всем кто просит помощи указывать какой тип задач учат, какую тему и тд.. ведь я почти уверен что учат обычные циклы, но так как не указано то неизвестно)
"Но для общего типа задач(типа найти суму елементов кратных 2,3 на промежутке) он не совсем подойдет." - он отлично подходит, изменить в моём примере 3 на какое-то k и работает для всех вариантов
 

Пух

كنت بلهاء
Модератор
моё мнение - чтоб не спорить советую всем кто просит помощи указывать какой тип задач учат, какую тему и тд.. ведь я почти уверен что учат обычные циклы, но так как не указано то неизвестно)
"Но для общего типа задач(типа найти суму елементов кратных 2,3 на промежутке) он не совсем подойдет." - он отлично подходит, изменить в моём примере 3 на какое-то k и работает для всех вариантов
а если например считать сумму от 20 до 100. ты с 21 начнешь подсчет?
 

xZ_

Хьёзь
а если например считать сумму от 20 до 100. ты с 21 начнешь подсчет?
"Скласти программу яка б дозволяла знаходити суму чисел кратних 3-м в діапозоні від 1 до N;" - логично что считать нада с первого числа кратного 3
a1=(m%3==0)?m:m+3-m%3; // 20%3 (в паскале 20 mod 3) =2, значит а1=20+3-2=21. первое число, с какого нада считать.
an=n-n%3; // 100-100%3=100-1=99 - последнее число
S=(a1+an)*(an-a1+3)/6; // первое + последнее/2 * количество элементов(99-33+3)/3.
 

Piva

Never die...
Люди помогите!Ибо в паскале я пок нубстер!=)
Надо создать две программы:
1.Найти Площадь Триугольника по формуле Гирона.
2.Найти площадь и длину окружности круга по радиусу.
Заранее СПС, тому кто поможет!)
 
Зверху