Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 02.10.2010, 19:30   #1 (permalink)
Валерьянка
Новичок
 
Аватар для Валерьянка
 
Регистрация: 02.10.2010
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Exclamation Целочисленная арифметика

Здравствуйте! помогите пожалуйста с программкой в С++!

Написать программу, которая для заданного натурального числа добавляет в запись числа минимальное количество цифр так, чтобы количество повторений каждой цифры в записи числа было четно так, чтобы полученное число было минимальным.

ну, или хотя б разобраться с условием помогите! плизз!
Валерьянка вне форума   Ответить с цитированием

Старый 02.10.2010, 19:30
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Я уверен, что проблема будет решаться гораздо быстрее если побольше узнать о ней

Задача-Паскаль. Длинная арифметика.
Целочисленная прямоугольная матрица

Старый 03.10.2010, 19:02   #2 (permalink)
KiD2
Member
 
Аватар для KiD2
 
Регистрация: 07.06.2010
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Надеюсь правильно понял задачу
Код:
#include <stdio.h>
#include <string.h>
#include <iostream.h>


int main(void)
{

  char a[100],b[100];
  int mas[10];

  for(int i=0;i<10;mas[i]=0,i++);
  cout<<"Enter number:  ";
  cin>>a;
  for(i=0;a[i]!=0;mas[a[i]-48]++,i++);
  for(i=0;i<10;i++)
    if(mas[i]%2!=0)
      {
       for(int d=0;(strlen(a)>d)&&(a[d]<i+48);b[d]=a[d],d++);
       b[d]=i+48;
       for(;strlen(a)>d;b[d+1]=a[d],d++);
       b[d+1]=a[d];
       for(int y=0;strlen(b)>y;a[y]=b[y],y++);
       a[y]=0;
     }
  cout<<"Result: "<<a<<"\n";
  getchar();

  return 0;
}
KiD2 вне форума   Ответить с цитированием
Старый 03.10.2010, 20:35   #3 (permalink)
Валерьянка
Новичок
 
Аватар для Валерьянка
 
Регистрация: 02.10.2010
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

огого! спасибо!
конечно, мне вродь нельзя использовать массивы, и некоторыз функций я не знаю.....всё равно, огромное спасибо

буду разбираться сейчас)
Валерьянка вне форума   Ответить с цитированием
Старый 03.10.2010, 20:57   #4 (permalink)
KiD2
Member
 
Аватар для KiD2
 
Регистрация: 07.06.2010
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Если нужно программу без каких-то функции например без strlen или еще чего пишем может и поправлю и объясню если что не понятно будет...
KiD2 вне форума   Ответить с цитированием
Старый 03.10.2010, 21:25   #5 (permalink)
Валерьянка
Новичок
 
Аватар для Валерьянка
 
Регистрация: 02.10.2010
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

ой, было бы неплохо....Нам вроде бы для этой проги массивы нельзя использовать. Ну и strlen - тоже такого ещё не проходили. Зато можно фунции использовать)

месять только С++ ещё проходим (
а ещё назло визуал студия на мой комп устанавливаться никак не хочет((
Валерьянка вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 03.10.2010, 22:10   #6 (permalink)
KiD2
Member
 
Аватар для KiD2
 
Регистрация: 07.06.2010
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

А зачем визуал студия О_О Вы на ней что ли пишете??? Скажи что ли тогда под какой конкретно Си писать... А то один то не поддерживает другой это...
KiD2 вне форума   Ответить с цитированием
Старый 03.10.2010, 23:34   #7 (permalink)
Валерьянка
Новичок
 
Аватар для Валерьянка
 
Регистрация: 02.10.2010
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

язык С++ MICROSOFT VISUAL STUDIO 2008, или 2005 без разницы
про с++ я в начале ещё писала
Валерьянка вне форума   Ответить с цитированием
Старый 04.10.2010, 13:31   #8 (permalink)
KiD2
Member
 
Аватар для KiD2
 
Регистрация: 07.06.2010
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Ну вот тебе еще вариант исполнения задачи На Visual C++ 2008 проверял
Код:
#include "stdafx.h"
#include <stdio.h>
#include <string>
#include <iostream>

using namespace std ;

int _tmain(int argc, _TCHAR* argv[])
{ 
	int i,j,d;
	string a,b;
	char s[10];

	cout<<"Enter number:  ";
	cin>>a;

	for(i=0;i<10;i++)
	{
		b=a;
		d=0;
		while(b.find(i+48)!=string::npos)
		{
			d++;
			b=b.substr(b.find(i+48)+1,b.length()-b.find(i+48)+1);
		}
		if(d%2!=0)
		{
			for(j=0;(a[j]<i+48)&&(a[j]!=0);j++);
			a.insert(j,itoa(i,s,10));
		}
	}

	cout<<"Result: "<<a<<"\n";
	getchar();

	return 0;
}
И прошлый поправленный с ориентацией на Visual С++ 2008
Код:
#include "stdafx.h"
#include <stdio.h>
#include <string>
#include <iostream>

using namespace std ;

int _tmain(int argc, _TCHAR* argv[])
{ 
  char a[100],b[100];
  int mas[10],i,d,y;

  for(i=0;i<10;mas[i]=0,i++);
  cout<<"Enter number:  ";
  cin>>a;
  for(i=0;a[i]!=0;mas[a[i]-48]++,i++);
  for(i=0;i<10;i++)
    if(mas[i]%2!=0)
      {
       for(d=0;(a[d]!=0)&&(a[d]<i+48);b[d]=a[d],d++);
       b[d]=i+48;
       for(;a[d]!=0;b[d+1]=a[d],d++);
       b[d+1]=a[d];
       for(y=0;b[y]!=0;a[y]=b[y],y++);
       a[y]=0;
     }
  cout<<"Result: "<<a<<"\n";
  getchar();

	return 0;
}
Полностью от массивов и функций все равно не избавился ) Выбирай какой нравится...
KiD2 вне форума   Ответить с цитированием
Старый 04.10.2010, 18:59   #9 (permalink)
Валерьянка
Новичок
 
Аватар для Валерьянка
 
Регистрация: 02.10.2010
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

ой спасибо! но я ночью сама написала, и кстать 10 по Лабе получила)))
сделала без массивов, чисто циклы и ветвление ....

а в вашей программе i+48 что даёт? я просто это не совсем поняла, интересно стало)
Валерьянка вне форума   Ответить с цитированием
Старый 04.10.2010, 19:06   #10 (permalink)
KiD2
Member
 
Аватар для KiD2
 
Регистрация: 07.06.2010
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Молодец что сама сделала А i+48 (i от 0 до 10) это в кодировке Ansi циферки "0123456789"
KiD2 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 02:03.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.