Перейти к публикации
  • Сейчас на странице   Всего пользователей: 1   (0 пользователей, 1 гость)

Hed-kun

Программирование, т. 5.1.

Рекомендованные сообщения

(изменено)

Ты затираешь а в первом цикле, так попробуй:

 

/*Определить в каждом нечётном числе n из заданной
последовательности чисел количество и произведение
цифр, меньших 5.*/
#include <iostream>
using namespace std;
int main()
{
int n,a;
cout<<"Vvedite koli4estvo chisel: ";
cin>>n;
for (int i=1; i<=n; i++)
{
 int count=0, p=1, temp;
 cout<<i<<"-oe chislo: ";
 cin>>a;
 if (a%2 != 0)
 {
  temp = a;
  while(temp!=0)
  {
   temp /= 10;
   count++;
  }
  while (a!=0)
  {
   temp = a%10;
   a /= 10;
   if (temp < 5)
 p *= temp;
  }
  cout<<"Proizvedenie: "<<p<<endl;
  cout<<"Kolichestvo cifr: "<<count<<endl;
 }
 else
  cout<<"Chislo chetnoe!"<<endl;
}
return 0;
}


Изменено пользователем DeadMage

Поделиться сообщением


Ссылка на сообщение

О, спасибо, заработало все.

Поделиться сообщением


Ссылка на сообщение
(изменено)

У меня есть класс и мне надо реализовать для этого класса контейнер (multiset), скажите плз с чего начать или хотя бы примеры какие-то реализаций контейнеров. Помогите нерадивому студенту не вылететь из вуза :trollface:


Изменено пользователем P0JIT0H

Поделиться сообщением


Ссылка на сообщение

скажите хотя бы а то нигде ненашёл как хранить элементы в памяти в контейнере set/multiset как односвязный список или как что???? :fffuuu:

Поделиться сообщением


Ссылка на сообщение

в армии, теперь говорят, кормят не плохо :hmm:

бля серьёзно, ты же должен знать, помоги плз

Поделиться сообщением


Ссылка на сообщение
(изменено)

Я помню ты меня пару раз выручал и по C, ну блин если кто нибудь знающий ещё зайдёт случайно в эту темку до 8 утра пожалуйста ответьте на вопрос. 5 звёзд в подарок гарантировано!


Изменено пользователем P0JIT0H

Поделиться сообщением


Ссылка на сообщение

в С нет ни set, ни multiset

там вообще нет никаких стандартных контейнеров, кроме массива. :nate:

Да и массив там есть, потому что его сделать было слишком легко

 

 

 

был рад помочь загуглить тебе два новых слова


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

в С нет ни set, ни multiset

там вообще нет никаких стандартных контейнеров, кроме массива. :nate:

Да и массив там есть, потому что его сделать было слишком легко

 

 

 

был рад помочь загуглить тебе два новых слова

блин, блин я гуглил, но так и не понял как реализована положение элементов контейнера в памяти. Гугл выдаёт только как пользоваться этими контейнерами но мне надо самому его написать. И это на c++ происходит

Поделиться сообщением


Ссылка на сообщение
(изменено)

Возможно я туплю просто и не могу найти, но я уже 2 ночь не сплю,kant помоги пожалуйста


Изменено пользователем P0JIT0H

Поделиться сообщением


Ссылка на сообщение

что значит как реализовано положение контейнера в памяти?

ты сам выбираешь это, как ты будешь реализовывать

 

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

можешь хоть на массиве множество делать, хоть на связных списках, хоть на чем угодно еще.


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

что значит как реализовано положение контейнера в памяти?

ты сам выбираешь это, как ты будешь реализовывать

 

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

можешь хоть на массиве множество делать, хоть на связных списках, хоть на чем угодно еще.

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

Поделиться сообщением


Ссылка на сообщение

что значит как реализовано положение контейнера в памяти?

ты сам выбираешь это, как ты будешь реализовывать

 

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

можешь хоть на массиве множество делать, хоть на связных списках, хоть на чем угодно еще.

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

 

реализуется как одно из разновидностей сбалансированных деревьев(красно-чёрное, 2-3 дерево или АВЛ). В том же Кормене есть описание операций для красно-чёрного, у меня есть реализация на C#, если надо могу скинуть, но на С там придётся переписывать с учётом ручного управления памятью

Поделиться сообщением


Ссылка на сообщение

что значит как реализовано положение контейнера в памяти?

ты сам выбираешь это, как ты будешь реализовывать

 

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

можешь хоть на массиве множество делать, хоть на связных списках, хоть на чем угодно еще.

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

 

реализуется как одно из разновидностей сбалансированных деревьев(красно-чёрное, 2-3 дерево или АВЛ). В том же Кормене есть описание операций для красно-чёрного, у меня есть реализация на C#, если надо могу скинуть, но на С там придётся переписывать с учётом ручного управления памятью

да скинь пожалуйста

Поделиться сообщением


Ссылка на сообщение

Блин, сорри за дезинфу, есть реализация на Javascript <html>

<head>

<title>Test</title>

</head>

<body>

<script type="text/javascript">

var Color = { Red : "Red", Black : "Black" };

var Node = (function()

{

function Node()

{

}

 

Node.Nil = new Node();

Node.Nil.color = Color.Black;

 

return Node;

})();

 

var RedBlackTree = (function()

{

function RedBlackTree()

{

this.root = Node.Nil;

}

 

RedBlackTree.prototype.rotateLeft = function(x)

{

var y = x.right;

x.right = y.left;

if(y.left !== Node.Nil)

{

y.left.parent = x;

}

y.parent = x.parent;

if(x.parent === Node.Nil)

{

this.root = y;

}

else

{

if(x.parent.left === x)

{

x.parent.left = y;

}

else

{

x.parent.right = y;

}

}

y.left = x;

x.parent = y;

}

 

RedBlackTree.prototype.rotateRight = function(y)

{

var x = y.left;

y.left = x.right;

if(x.right !== Node.Nil)

{

x.right.parent = y;

}

x.parent = y.parent;

if(y.parent === Node.Nil)

{

this.root = x;

}

else

{

if(y.parent.left === y)

{

y.parent.left = x;

}

else

{

y.parent.right = x;

}

}

y.parent = x;

x.right = y;

}

 

RedBlackTree.prototype.insert = function(value)

{

var z = new Node();

z.left = Node.Nil;

z.right = Node.Nil;

z.color = Color.Red;

z.value = value;

z.parent = Node.Nil;

var x = this.root;

var y = Node.Nil;

while(x !== Node.Nil)

{

y = x;

if(x.value > value)

{

x = x.left;

}

else{

x = x.right;

}

}

z.parent = y;

if(y === Node.Nil)

{

this.root = z;

}

else

{

if(y.value > value)

{

y.left = z;

}

else

{

y.right = z;

}

}

this.insertFixup(z);

}

 

RedBlackTree.prototype.insertFixup = function(z)

{

while(z.parent.color === Color.Red)

{

if(z.parent.parent.left === z.parent)

{

var y = z.parent.parent.right;

if(y.color === Color.Red)

{

y.color = Color.Black;

z.parent.parent.color = Color.Red;

z.parent.color = Color.Black;

z = z.parent.parent;

}

else

{

if(z.parent.right === z)

{

z = z.parent;

this.rotateLeft(z);

}

z.parent.parent.color = Color.Red;

z.parent.color = Color.Black;

this.rotateRight(z.parent.parent);

}

}

else

{

var y = z.parent.parent.left;

if(y.color === Color.Red)

{

y.color = Color.Black;

z.parent.color = Color.Black;

z.parent.parent.color = Color.Red;

z = z.parent.parent;

}

else

{

if(z.parent.left === z)

{

z = z.parent;

this.rotateRight(z);

}

z.parent.color = Color.Black;

z.parent.parent.color = Color.Red;

this.rotateLeft(z.parent.parent);

}

}

}

this.root.color = Color.Black;

};

 

function print(node)

{

if(node === Node.Nil)

{

return;

}

print(node.left);

console.log(node.value + " " + node.color);

print(node.right);

}

 

RedBlackTree.prototype.print = function()

{

print(this.root);

};

 

return RedBlackTree;

})();

 

var tree = new RedBlackTree();

tree.insert(10);

tree.insert(0);

tree.insert(-10);

tree.insert(-1);

tree.insert(-13);

tree.insert(-7);

tree.insert(7);

tree.insert(13);

tree.print();

</script>

</body>

</html>

 

На C# дома есть только повороты дерева. Остальная реализация на работе, но в инете можно найти, например, http://www.codeproject.com/Articles/8287/Red-Black-Trees-in-C

Поделиться сообщением


Ссылка на сообщение

Спасибо большое) но как по итогу оказалось зря переживал всем 3 поставили :trollface:

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...