Тема: Цикл з параметром
Допоможіть з програмою. Ось умова: Дано дійсне число а. Серез чисел 1, 1+1/2, 1+1/2+1/3,... знайти перше, яке більше за а. Вказати таке найментше n, для якого 1+1/2+1/3+...+1/n>a.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Цикл з параметром
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Допоможіть з програмою. Ось умова: Дано дійсне число а. Серез чисел 1, 1+1/2, 1+1/2+1/3,... знайти перше, яке більше за а. Вказати таке найментше n, для якого 1+1/2+1/3+...+1/n>a.
Напишіть власні напрацювання, а тут допоможуть із виправленням помилок!
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
main()
{
float a, N=0;
int i, n;
float min;
cout<<"Enter number a :";
cin>>a;
cout<<"Enter number n :";
cin>>n;
for(i=1;N<=a;i++)
{
N+=(float)1+(1/(n+1));
n++;
}
min=-50;
if(n<a) n=min;
if(i+(i/n+1)+(i/n+2)+(i/n+3)>a) cout<<"\n numbers :"<<n;
getch();
}
Додав вам тег code, наступного разу самостійно. А також описуйте, що саме вас у коді не влаштовує.
...умова: Дано дійсне число а. Серез чисел...
cout<<"Enter number n :"; cin>>n;
В умові нічого не сказано про те, що дано n, цей фрагмент непотрібний.
for(i=1;N<=a;i++) { N+=(float)1+(1/(n+1)); n++; }
Тут у вас зростають одночасно дві змінні: i та n. Може, залишите тільки одну з них?
Крім того, (1/(n+1)) - цілочислене ділення (оскільки n - ціле). Замініть на 1.0/... Ну і з формулою трохи подумайте, що зробити, там щось дивне ви робите.
min=-50; if(n<a) n=min;
Не бачу в умові нічого схожого на це. Приберіть.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися