Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/34: Рейтинг темы: голосов - 34, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 24
1

Автопробег

18.07.2013, 18:14. Просмотров 6974. Ответов 16
Метки нет (Все метки)

Пожалуйста,помогите решить эту задачу.

За день машина проезжает n километров. Сколько дней нужно, чтобы проехать маршрут длиной m километров?
Программа получает на вход числа n и m.
При решении этой задачи нельзя пользоваться условной инструкцией if и циклами.

Примеры

входные данные
700
750
выходные данные
2

входные данные
700
2100
выходные данные
3
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.07.2013, 18:14
Ответы с готовыми решениями:

Автопробег по линкам в TWebBrowser
Всем доброго времени суток. Можно ли одним нажатием на кнопку в программе пролистать несколько...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16824 / 6702 / 880
Регистрация: 12.06.2012
Сообщений: 19,968
18.07.2013, 23:58 2
Цитата Сообщение от nazerke Посмотреть сообщение
При решении этой задачи нельзя пользоваться условной инструкцией if и циклами
Если только if, то можно воспользоваться тернарной условной операцией Конечно, если на си-подобном синтаксисе (ну или где есть тернарные операторы)..
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main()
{
    int m, n;
    
    printf("\nKm/день\tДлина маршрута\n");
    scanf("%d %d", &n, &m);
 
    printf( "\n%d\n", m / n + (m % n == 0 ?  0 : 1) );
    
    return 0;
}
Добавлено через 1 минуту
даже можно и без нее обойтись
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main()
{
    int m, n;
    
    printf("\nВ день\tДлина маршрута\n");
    scanf("%d %d", &n, &m);
    
    printf("\n%d\n", m / n + !(m % n == 0) );
    
    return 0;
}
0
4849 / 3270 / 466
Регистрация: 10.12.2008
Сообщений: 10,569
19.07.2013, 14:35 3
Цитата Сообщение от KOPOJI Посмотреть сообщение
C
1
printf("\n%d\n", m / n + !(m % n == 0) );
C
1
m / n + (m % n != 0)
0
KOPOJI
19.07.2013, 14:41
  #4

Не по теме:

accept, ночь была на дворе :D

0
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 24
19.07.2013, 17:43  [ТС] 5
Цитата Сообщение от Taatshi Посмотреть сообщение
nazerke, на каком языке программирования?

на с++

Добавлено через 50 минут
KOROJI можете помочь по коду программу на Dev-C++.Заранее спасибо!
Остальным тоже спасибо!
Я новичок по программированию,поэтому прощу помощь.Кто хочет,пусть поможет!
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16824 / 6702 / 880
Регистрация: 12.06.2012
Сообщений: 19,968
19.07.2013, 17:51 6
Цитата Сообщение от nazerke Посмотреть сообщение
можете написать программу на Dev-C++
неа, у меня ее нет. Как-то так..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
int main()
{
    int m, n;
    
    std::cout << "В день\n";
    std::cin >> n;
    std::cout << "Длина маршрута\n";
    std::cin >> m;
    
    std::cout << ( m / n + (m % n != 0) );
    
    return 0;
}
1
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 24
19.07.2013, 18:22  [ТС] 7
KOROJI не получается. Но все равно большое спасибо!
0
5477 / 4872 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.07.2013, 18:32 8
Цитата Сообщение от nazerke Посмотреть сообщение
не получается
Что конкретно?
0
3 / 3 / 2
Регистрация: 31.05.2013
Сообщений: 25
19.07.2013, 18:47 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 using namespace std;
int main()
{
    int m, n;
    
    cout << "В день"<<endl;
    cin >> n;
    cout << "Длина маршрута"<<endl;
    cin >> m;
    cout << ( m / n + (m % n != 0) );
    system("pause");
    return 0;
}
tak?
0
193 / 173 / 30
Регистрация: 10.07.2012
Сообщений: 800
19.07.2013, 18:55 10
насколько я понимаю, суть в том, чтобы воспользоваться ceil().

Добавлено через 3 минуты
на Dev-C++ вроде скомпилируется так:

C++
1
2
3
4
5
6
7
8
9
10
11
#include <math.h>
#include <iostream>
using namespace std;
 
int main() {
   int n, m;
   cin >> n >> m;
   cout << ceil((double)m / (double)n) << endl;
   system("pause");
   return 0;
}
Добавлено через 5600000000 секунд
если не скомпилирует, выложите сообщение компилятора.
0
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 24
23.07.2013, 14:10  [ТС] 11
Спасибо,KOROJI,отредактировала все получилось! Спасибо всем!
0
Эксперт С++
4254 / 2228 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
23.07.2013, 14:13 12
C++
1
m / n + !!(m % n)
0
4849 / 3270 / 466
Регистрация: 10.12.2008
Сообщений: 10,569
23.07.2013, 19:14 13
Цитата Сообщение от Thinker Посмотреть сообщение
C
1
!!(m % n)
это три операции

C
1
m % n != 0
это две операции
0
Эксперт С++
4254 / 2228 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
23.07.2013, 19:26 14
Цитата Сообщение от accept Посмотреть сообщение
это три операции

C
1
m % n != 0
это две операции

Не по теме:

и что теперь? это же не навязывание, а один из вариантов. давайте еще символы подсчитаем в выражениях. и вообще в этой задаче можно одним делением обойтись. а толку. вопрос еще и в красоте кода, эстетика. по каким еще параметрам вам код обойдет мой? возможно, по всем. и что сейчас?

0
Эксперт С++
4966 / 3072 / 456
Регистрация: 10.11.2010
Сообщений: 11,159
Записей в блоге: 10
23.07.2013, 19:53 15
Не проще так: (m + n - 1) / n
1
193 / 173 / 30
Регистрация: 10.07.2012
Сообщений: 800
23.07.2013, 19:55 16
Цитата Сообщение от lazybiz Посмотреть сообщение
Не проще так: (m + n) / n
проще, но неправильно...
0
Эксперт С++
4254 / 2228 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
23.07.2013, 20:04 17
Цитата Сообщение от lazybiz Посмотреть сообщение
Не проще так: (m + n - 1) / n
проще и правильно

Не по теме:

специально для accept добавлю модификации:
m / n + (m % n > 0);
m / n + (m % n || 0);
m / n + (m % n && 1);

0
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.