AKB Forums

Go Back   AKB Forums > Technical sections > Algorithms
Home Register Blogs FAQ Members List Calendar Downloads Arcade Mark Forums Read

Algorithms The source of algorithms for your project

Troubles when posting message? Click here! :: Проблемы с отправлением сообщения? Нажмите сюда!

Reply
 
LinkBack Thread Tools Display Modes
Old May 28, 2005, 14:09   #1
MediaGate LLC
 
Vazgen Abgaryan's Avatar
 
Join Date: Oct 2001
Location: At home :)
Posts: 580
Rep Power: 7
Reputation: 18
Send a message via ICQ to Vazgen Abgaryan
Задача, помогите плиз!

Плиз, помогите написать сдел. задачу на С++ . Алгоритм мне ясен, но прогу написать не получается.
Для заданных a,b,p натуральных чисел вычислить произведение всех тех натуральных чисел, принадлежащих промежутку [a,b], в p-ичном (кодировка) представлении которых нет повторяющихся цифр.
Спасибо
Vazgen Abgaryan is offline   Reply With Quote Quote selected
Old May 28, 2005, 17:15   #2
Дикообраз-безобраз
 
AvDav's Avatar
 
Join Date: Jul 2004
Location: У самого синего моря
Posts: 2,659
Rep Power: 5
Reputation: 99
Держи..тока работает при р=2-10.
Code:
#include <iostream>
#include <cassert>
#include <vector>

template <class uint=unsigned int> 
bool proc(uint a, uint b, uint &out, unsigned char rdx=10)
{
	assert(1<rdx && rdx<=10 && a<b);

	out=1;
	bool gotcha, found=false;

	for(uint tmp, dig; a<=b; ++a)
	{
		tmp=a;
		gotcha=true;
		std::vector<bool> preds(rdx, false);
		do 
		{
			dig=tmp%rdx;
			if(preds[dig]) 
			{
				gotcha=false; 
				break;
			} 
			else preds[dig]=true;
		}
		while(tmp/=rdx);
		if(gotcha) std::cout << a << std::endl, out*=a, found=true;
	}

	return found;
}

int main()
{
	unsigned int mult;
	proc(1u, 9u, mult, 3);
	std::cout << "Mult = " << mult << std::endl;

	return 0;
}
__________________
- Гитлер?!!
- Да?!!
- Зурна!!!
AvDav is offline   Reply With Quote Quote selected
Old May 28, 2005, 19:53   #3
MediaGate LLC
 
Vazgen Abgaryan's Avatar
 
Join Date: Oct 2001
Location: At home :)
Posts: 580
Rep Power: 7
Reputation: 18
Send a message via ICQ to Vazgen Abgaryan
Thanks a lot!
Завтра попробую разобраться. Я не программер и далёк от этого и не имею представления о Vector-ax, но спасибо большое! Попробую разобраться
Thanks again
Vazgen Abgaryan is offline   Reply With Quote Quote selected
Old Jun 2, 2005, 06:21   #4
Say no to alco like Gates
 
Hrach_Techie's Avatar
 
Join Date: Aug 2004
Location: Apparently the anti-alcoholism campaign hasn't worked very well for Gates after the last Zaher party ...
Posts: 16,342
Rep Power: 7
Reputation: 359
Question a newbie query: the optimal way to solve

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

Quote:

// This program takes 5digit number && checks if it's palindrome


#include <iostream>

using namespace std;


bool isPalindrome(int& source)





{
if(source < 10000 || source >99999) //check if 5 digit
return false;




int i = source % 10; //check last num


int j = source % 100 /10; // check penultimate num
int m1 = 10 * i + j;
int m2 = source / 1000;
if (m1 == m2)
return true;
return false;



}

void main ()










{
int source = 0;


cout<<"input 5 digit number"<<endl;
cin>>source;
if(isPalindrome(source))



{


cout<<"The number is palindrome";






}


else






{


cout<<"The number is not palindrome";






}
}
__________________
Мадмазель, Медам, Месье! "Глория" меняет курс и направляется в Кейптаун! Кому это не нравится будет расстрелян на месте. (с)

http://texneg.livejournal.com

Last edited by Hrach_Techie : Jun 2, 2005 at 06:39.
Hrach_Techie is offline   Reply With Quote Quote selected
Old Jun 2, 2005, 10:59   #5
RAU
 
Join Date: Jun 2005
Location: Yerevan
Posts: 2
Rep Power: 0
Reputation: 10
Code:
#include <iostream>
using namespace std;
void main ()
{
	int source = 0;
	cout<<"input 5 digit number"<<endl;
	cin>>source;
	if (source>9999 && source<100000 && (source/1000==(source%10)*10+(source/10)%10))
		cout<<"The number is palindrome" << endl;
		  else
			cout<<"The number is not palindrome" << endl;
}
Eduard is offline   Reply With Quote Quote selected
Old Jun 2, 2005, 11:23   #6
Say no to alco like Gates
 
Hrach_Techie's Avatar
 
Join Date: Aug 2004
Location: Apparently the anti-alcoholism campaign hasn't worked very well for Gates after the last Zaher party ...
Posts: 16,342
Rep Power: 7
Reputation: 359
тоже красивое решение ... тока наскока правильно или красиво загромождать всем этим main? вот так решил её один наш общий знакомый (не буду называть имени)

Quote:
#include <iostream>
using namespace std;
void main()
{
bool reply = false;
int num;
cin >> num;
if (num % 10 == num / 10000) {
num %= 10000;
num /= 10;
reply = num % 10 == num / 100;
}
cout << "\t - is" << (reply ? " " : " not ") << "a palindrome\n\n";
}
тоже красиво - но всё таки всё это можно вне main делать ...
__________________
Мадмазель, Медам, Месье! "Глория" меняет курс и направляется в Кейптаун! Кому это не нравится будет расстрелян на месте. (с)

http://texneg.livejournal.com
Hrach_Techie is offline   Reply With Quote Quote selected
Old Jun 2, 2005, 12:15   #7
Moderator
 
Gates's Avatar
 
Join Date: Feb 2002
Location: Armenia
Posts: 5,158
Rep Power: 8
Reputation: 204
Send a message via ICQ to Gates
Hrach, neuzheli v programmeri podalsja?
__________________

Gates is offline   Reply With Quote Quote selected
Old Jun 2, 2005, 13:41   #8
MediaGate LLC
 
Vazgen Abgaryan's Avatar
 
Join Date: Oct 2001
Location: At home :)
Posts: 580
Rep Power: 7
Reputation: 18
Send a message via ICQ to Vazgen Abgaryan
Pechatayet perviye polindrom chisla dlya dannogo chisla m
Code:
#include<iostream.h>
int pol(int);
void main() {
int m;
cout<<"Enter m \n";
cin>>m;
for(int i=10; i<=m; i++) if(pol(i)) cout<<i<<" "; }
int pol(int x) {
int s=0,t=x;
while(x) { s=s*10+ x%10; x=x/10; }
return s==t; }
Vazgen Abgaryan is offline   Reply With Quote Quote selected
Old Jun 2, 2005, 14:19   #9
Грустно...
 
Agregat's Avatar
 
Join Date: Aug 2002
Location: Там, где всегда идут дожди
Posts: 21,441
Rep Power: 10
Reputation: 142
Send a message via ICQ to Agregat Send a message via MSN to Agregat
Люди пишущие void main достойны лишь ушата презрения.
__________________
http://аvitya.livejournal.com
Хотели, как лучше, а получилось даже хуже...
Лозунг шахматиста: На каждый шах - ответим матом!
Agregat is offline   Reply With Quote Quote selected
Old Jun 2, 2005, 14:36   #10
Say no to alco like Gates
 
Hrach_Techie's Avatar
 
Join Date: Aug 2004
Location: Apparently the anti-alcoholism campaign hasn't worked very well for Gates after the last Zaher party ...
Posts: 16,342
Rep Power: 7
Reputation: 359
Боится презрения лишь тот кто его заслуживает / а сам бы как решил?
__________________
Мадмазель, Медам, Месье! "Глория" меняет курс и направляется в Кейптаун! Кому это не нравится будет расстрелян на месте. (с)

http://texneg.livejournal.com
Hrach_Techie is offline   Reply With Quote Quote selected
Old Jun 2, 2005, 17:43   #11
MediaGate LLC
 
Vazgen Abgaryan's Avatar
 
Join Date: Oct 2001
Location: At home :)
Posts: 580
Rep Power: 7
Reputation: 18
Send a message via ICQ to Vazgen Abgaryan
Quote:
Originally Posted by Agregat
Люди пишущие void main достойны лишь ушата презрения.
Друг скажи ламмеру- экономисту, какая разница как писать? void main() {
ili main() {
return 0;
???????
Мне с++ не нужен и поэтому мне без разницы как писать- главное, чтоб работало
Vazgen Abgaryan is offline   Reply With Quote Quote selected
Old Jun 2, 2005, 17:52   #12
скромный VIP
 
analyst's Avatar
 
Join Date: Jun 2003
Location: Yerevan
Posts: 959
Rep Power: 6
Reputation: 10
Да Агреагат, ты прав, но с другой строны, пусакй маздайка сама догадается корректно ли завершилась программа или нет..Пускай подумает немножко чтоль...

п.с А к глобальной переменной придраться не хочешь?
__________________
И аткуда такие беруцца???
analyst is offline   Reply With Quote Quote selected
Old Jun 2, 2005, 17:59   #13
MediaGate LLC
 
Vazgen Abgaryan's Avatar
 
Join Date: Oct 2001
Location: At home :)
Posts: 580
Rep Power: 7
Reputation: 18
Send a message via ICQ to Vazgen Abgaryan
Analyst: Ok, sorry didn`t know what that was ;-)

Last edited by Vazgen Abgaryan : Jun 2, 2005 at 18:26.
Vazgen Abgaryan is offline   Reply With Quote Quote selected
Old Jun 3, 2005, 03:48   #14
панаехавший
 
Obelix's Avatar
 
Join Date: Jun 2003
Location: форпост
Posts: 4,003
Rep Power: 6
Reputation: 10
Send a message via ICQ to Obelix
Quote:
Originally Posted by Vazgen Abgaryan
Друг скажи ламмеру- экономисту, какая разница как писать? void main() {
ili main() {
return 0;
???????
Zhor ba da qez petq a?
__________________
Իսկ ԴՈՒ արդեն վաճառե՞լ ես Հայրենիքդ ռուսներին:

My Exchange Rate Monitor | Իմ Արտարժույթի Մոնիտորը

Obelix is offline   Reply With Quote Quote selected
Old Jun 3, 2005, 13:34   #15
Say no to alco like Gates
 
Hrach_Techie's Avatar
 
Join Date: Aug 2004
Location: Apparently the anti-alcoholism campaign hasn't worked very well for Gates after the last Zaher party ...
Posts: 16,342
Rep Power: 7
Reputation: 359
Quote:
Originally Posted by Vazgen Abgaryan
Друг скажи ламмеру- экономисту, какая разница
разница лишь в том что экономистов много а хороших программистов мало ... не в обиду но хорошо что ты экономист ...
__________________
Мадмазель, Медам, Месье! "Глория" меняет курс и направляется в Кейптаун! Кому это не нравится будет расстрелян на месте. (с)

http://texneg.livejournal.com
Hrach_Techie is offline   Reply With Quote Quote selected
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Помогите вспомнить Nimfa Science and Education 1 May 4, 2005 06:34
Помогите найти материалы Н.К.Рерих General 0 Feb 24, 2004 15:36
"Install New Font" не активен , помогите !!! Mics Software 1 Dec 11, 2003 13:33
"Install New Font" не активен , помогите !!! Mics Software 0 Dec 1, 2003 07:11
Помогите С Вирусом Lion_a Software Security 15 Jun 25, 2003 21:20


All times are GMT. The time now is 05:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
This board was founded on September 29, 2001
Powered by Viper Internet

Affordable Web Hosting | ParevNet

Buy text link