Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2011, 09:01   #1
videolord
Пользователь
 
Аватар для videolord
 
Регистрация: 23.02.2011
Сообщений: 28
Смущение легкая задача на реализацию

как эта задачка решается , у меня чет не получается
эту задачку
Код:
решал так, но неправильно решил
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
int n,m,res;
int main(){
        int num;
        scanf("%d%d",&n,&m);
 
        num=n/(m+1);
        res=n-(num+1);
        if(n%(m+1)==2){
                printf("No solution\n");
                return 0;
        }
        printf("%d\n",(num+1));
      int x=res/num; 
      for(int i=0;i<x;i++)
         printf("%d ",num);
        for(int i=0;i<m-x;i++)
         printf("%d ",num-1);
        printf("\n");
        system("pause");
        return 0;
}
videolord вне форума Ответить с цитированием
Старый 18.12.2011, 01:32   #2
htonasral
Пользователь
 
Регистрация: 19.12.2007
Сообщений: 18
По умолчанию

Попробуй вот так:
Код:
#include <iostream>

using std::cout;
using std::cin;
using std::endl;


int main()
{
	unsigned n, m;
	cout << "Vvedite kolichestvo ananasov i starwix:" << endl;
	cin >> n >> m;
	
	if(n < 100 || n > 10000)
	{
		cout << "Nepravilno chislo ananasov" << endl;
                return 1;
	}
	if(m < 2 || m > 10)
	{
                cout << "Nepravilnoe chislo starwin" << endl;
		return 1;
	}
	
	unsigned raz = n / (m + 1);
	unsigned raz1 = n - (raz * (m + 1));
	unsigned k = n;
	unsigned p = m + 1;
	unsigned tmp = 0;
	if(raz1 == 2)
	{
		cout << "No solution" << endl;
		return 0;
	}
	else
	{
		cout << "Starwunu:";
		while(p != 1)
		{
			if(k % p != 0)
			{
				tmp = k / p;
			}
			else
			{
				tmp = k / p - 1;
			}
			cout << tmp << " ";
			k -= tmp;
			--p;
		}
		cout << endl;
		cout << "Vojd:" << tmp + 1 << endl;
	}

}
PS: Задачка интересная

Последний раз редактировалось htonasral; 18.12.2011 в 01:37.
htonasral вне форума Ответить с цитированием
Старый 18.12.2011, 09:02   #3
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Эх не успел решить. Скорость очень низкая. Меня бы в этом племени съели уже

videolord, а сколько бы на соревнованиях отвадилось времени на неё?
8Observer8 вне форума Ответить с цитированием
Старый 18.12.2011, 15:21   #4
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от htonasral Посмотреть сообщение
PS: Задачка интересная
Что в ней интересного?
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 18.12.2011, 16:02   #5
htonasral
Пользователь
 
Регистрация: 19.12.2007
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Blade Посмотреть сообщение
Что в ней интересного?
Это вас сильно задело, ну тогда извините.

PS: Задача какашка, не знаю зачем даже было тему создавать.
htonasral вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача не самая легкая Arinca Паскаль, Turbo Pascal, PascalABC.NET 0 17.04.2011 22:25
Помогите легкая задача?но не выходит ulyanich Microsoft Office Excel 1 24.12.2009 13:06
легкая задача, не знаю с чего начать isJoga Помощь студентам 2 04.11.2009 15:42
легкая задача vAdiM_Kubski Паскаль, Turbo Pascal, PascalABC.NET 2 25.09.2009 22:49