Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Помогите решить задачу по ubuntu.  (Прочитано 579 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Solderas

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Помогите решить задачу по ubuntu.
« : 21 Июнь 2012, 17:05:17 »
Помогите решить задачу по shall. Задание найти факториал числа. Любого. Помогите пожалуйста.
« Последнее редактирование: 21 Июнь 2012, 18:07:58 от Solderas »


Оффлайн Señor_Gaga

  • Забанен
  • Активист
  • *
  • Сообщений: 878
  • Ubuntu 12.04LTS & Linux Mint 13LTS "Maya"
    • Просмотр профиля
Re: Помогите решить задачу по ubuntu.
« Ответ #2 : 21 Июнь 2012, 17:51:58 »
Вот к примеру 5!
(Нажмите, чтобы показать/скрыть)
Факториалы других чисел по аналогии.

Оффлайн MaximKaz

  • Участник
  • *
  • Сообщений: 206
  • С++ forever!
    • Просмотр профиля
Re: Помогите решить задачу по ubuntu.
« Ответ #3 : 21 Июнь 2012, 17:55:08 »
Алгоритм придумал (неверно сойдёт):
1) описываем массив char
2) вводим в массив символов нашу цифру
3) переводим каждый элемент массивы в int или long или short
4) складываем эти числа
Правильно хоть не придумал, не?
ОО а ведь можно сразу массив int сделать, а не из чара переводить!!! Дошло до меня вот исходник на С++:
#include <iostream>
using namespace std;
int main()
{
const int max = 3;
int fakt[max];
for (int i = 0; i<2; i++)
{
cin >> fakt[i];
}
fakt[2] = fakt[0] * fakt[1];
cout << fakt[2];
return 0;
}
Введите сначала первый символ вашего числа, а затем второй и будет вам счастье. Корректируйте под себя.
« Последнее редактирование: 21 Июнь 2012, 17:58:27 от MaximKaz »
Fedora 17 | KDE | Intel Core i3 3.1 Ghz | RAM 2x2 | nVidia GeForce GTS 250 (1 Gb) | 620 Gb HDD (SATA & IDE) | DSL - 8 Mb/sec

Оффлайн easy2002

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2786
  • Мурманск
    • Просмотр профиля
Re: Помогите решить задачу по ubuntu.
« Ответ #4 : 21 Июнь 2012, 17:55:38 »
echo 'define f(x) {if (x>1){return x*f(x-1)};return 1} f(число_любое)' | bc
Tempora mutantur et nos mutantur in illis

Оффлайн Solderas

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Помогите решить задачу по ubuntu.
« Ответ #5 : 21 Июнь 2012, 18:00:09 »
Мне нужно чтобы начиналось #! pico имя.sh
И тд

Оффлайн MaximKaz

  • Участник
  • *
  • Сообщений: 206
  • С++ forever!
    • Просмотр профиля
Re: Помогите решить задачу по ubuntu.
« Ответ #6 : 21 Июнь 2012, 18:01:04 »
Мне нужно чтобы начиналось #! pico имя.sh
И тд
Надо сразу было говорить на каком языке писать.
Fedora 17 | KDE | Intel Core i3 3.1 Ghz | RAM 2x2 | nVidia GeForce GTS 250 (1 Gb) | 620 Gb HDD (SATA & IDE) | DSL - 8 Mb/sec

Оффлайн easy2002

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2786
  • Мурманск
    • Просмотр профиля
Re: Помогите решить задачу по ubuntu.
« Ответ #7 : 21 Июнь 2012, 18:04:06 »
Мне нужно чтобы начиналось #! pico имя.sh
ну вы блин даете (с). Полгода уж :)
http://www.cyberforum.ru/shell/thread611099.html
Tempora mutantur et nos mutantur in illis

Оффлайн Solderas

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Помогите решить задачу по ubuntu.
« Ответ #8 : 21 Июнь 2012, 18:07:30 »
#!/bin/sh
result=1
for (( factor=$1 ; $factor ; factor=$factor-1 ))
do
     let -i result=$result*$factor
done
echo $result
Если я это напишу у меня все будет робить? Я буду вводить число. И он будет находить факториал?

Оффлайн easy2002

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2786
  • Мурманск
    • Просмотр профиля
Re: Помогите решить задачу по ubuntu.
« Ответ #9 : 21 Июнь 2012, 18:08:14 »
#!/bin/bash
seq -s "*" 1 $1 |bc
Tempora mutantur et nos mutantur in illis

 

Страница сгенерирована за 0.129 секунд. Запросов: 24.