Go Back   Armenian Knowledge Base > Technical sections > Languages, Compilers, Interpreters > Algorithms

Reply
 
Thread Tools

Задача, помогите плиз!
Old 28.05.2005, 14:09   #1
Optimist
 
Vazgen Abgaryan's Avatar
 
Join Date: 10 2001
Location: Yerevan
Posts: 712
Rep Power: 5
Default Задача, помогите плиз!

Плиз, помогите написать сдел. задачу на С++ . Алгоритм мне ясен, но прогу написать не получается.
Для заданных a,b,p натуральных чисел вычислить произведение всех тех натуральных чисел, принадлежащих промежутку [a,b], в p-ичном (кодировка) представлении которых нет повторяющихся цифр.
Спасибо

Old 28.05.2005, 17:15   #2
Ego coder
 
AvDav's Avatar
 
Join Date: 07 2004
Location: Yerevan, Armenia
Age: 44
Posts: 3,738
Rep Power: 5
Default

Держи..тока работает при р=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;
}
__________________
Каждый сам кузнец своего счастья, и несчастья тоже.

Old 28.05.2005, 19:53   #3
Optimist
 
Vazgen Abgaryan's Avatar
 
Join Date: 10 2001
Location: Yerevan
Posts: 712
Rep Power: 5
Default

Thanks a lot!
Завтра попробую разобраться. Я не программер и далёк от этого и не имею представления о Vector-ax, но спасибо большое! Попробую разобраться
Thanks again

a newbie query: the optimal way to solve
Old 02.06.2005, 06:21   #4
★★★★★★★★★★★★★
 
Hrach_Techie's Avatar
 
Join Date: 08 2004
Location: London, UK
Age: 46
Posts: 16,531
Rep Power: 8
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; 02.06.2005 at 06:39.

Old 02.06.2005, 10:59   #5
RAU
 
Join Date: 06 2005
Location: Yerevan
Age: 37
Posts: 2
Rep Power: 0
Default

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;
}

Old 02.06.2005, 11:23   #6
★★★★★★★★★★★★★
 
Hrach_Techie's Avatar
 
Join Date: 08 2004
Location: London, UK
Age: 46
Posts: 16,531
Rep Power: 8
Default

тоже красивое решение ... тока наскока правильно или красиво загромождать всем этим 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

Old 02.06.2005, 12:15   #7
Moderator
 
Gates's Avatar
 
Join Date: 02 2002
Location: Armenia
Age: 45
Posts: 5,226
Rep Power: 6
Default

Hrach, neuzheli v programmeri podalsja?

Old 02.06.2005, 13:41   #8
Optimist
 
Vazgen Abgaryan's Avatar
 
Join Date: 10 2001
Location: Yerevan
Posts: 712
Rep Power: 5
Default

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; }

Old 02.06.2005, 14:19   #9
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 43
Posts: 21,717
Rep Power: 9
Default

Люди пишущие void main достойны лишь ушата презрения.
__________________
http://аvitya.livejournal.com
Хотели, как лучше, а получилось даже хуже...
Лозунг шахматиста: На каждый шах - ответим матом!

Old 02.06.2005, 14:36   #10
★★★★★★★★★★★★★
 
Hrach_Techie's Avatar
 
Join Date: 08 2004
Location: London, UK
Age: 46
Posts: 16,531
Rep Power: 8
Default

Боится презрения лишь тот кто его заслуживает / а сам бы как решил?
__________________
Мадмазель, Медам, Месье! "Глория" меняет курс и направляется в Кейптаун! Кому это не нравится будет расстрелян на месте. (с)

http://texneg.livejournal.com

Old 02.06.2005, 17:43   #11
Optimist
 
Vazgen Abgaryan's Avatar
 
Join Date: 10 2001
Location: Yerevan
Posts: 712
Rep Power: 5
Default

Quote:
Originally Posted by Agregat
Люди пишущие void main достойны лишь ушата презрения.
Друг скажи ламмеру- экономисту, какая разница как писать? void main() {
ili main() {
return 0;
???????
Мне с++ не нужен и поэтому мне без разницы как писать- главное, чтоб работало

Old 02.06.2005, 17:52   #12
скромный VIP
 
analyst's Avatar
 
Join Date: 06 2003
Location: Yerevan
Age: 38
Posts: 960
Rep Power: 0
Default

Да Агреагат, ты прав, но с другой строны, пусакй маздайка сама догадается корректно ли завершилась программа или нет..Пускай подумает немножко чтоль...

п.с А к глобальной переменной придраться не хочешь?
__________________
И аткуда такие беруцца???

Old 02.06.2005, 17:59   #13
Optimist
 
Vazgen Abgaryan's Avatar
 
Join Date: 10 2001
Location: Yerevan
Posts: 712
Rep Power: 5
Default

Analyst: Ok, sorry didn`t know what that was

Last edited by Vazgen Abgaryan; 02.06.2005 at 18:26.

Old 03.06.2005, 03:48   #14
панаехавший
 
Obelix's Avatar
 
Join Date: 06 2003
Location: форпост
Age: 38
Posts: 4,007
Rep Power: 0
Default

Quote:
Originally Posted by Vazgen Abgaryan
Друг скажи ламмеру- экономисту, какая разница как писать? void main() {
ili main() {
return 0;
???????
Zhor ba da qez petq a?
__________________
Իսկ ԴՈՒ արդեն վաճառե՞լ ես Հայրենիքդ ռուսներին:
My Exchange Rate Monitor | Իմ Արտարժույթի Մոնիտորը

Old 03.06.2005, 13:34   #15
★★★★★★★★★★★★★
 
Hrach_Techie's Avatar
 
Join Date: 08 2004
Location: London, UK
Age: 46
Posts: 16,531
Rep Power: 8
Default

Quote:
Originally Posted by Vazgen Abgaryan
Друг скажи ламмеру- экономисту, какая разница
разница лишь в том что экономистов много а хороших программистов мало ... не в обиду но хорошо что ты экономист ...
__________________
Мадмазель, Медам, Месье! "Глория" меняет курс и направляется в Кейптаун! Кому это не нравится будет расстрелян на месте. (с)

http://texneg.livejournal.com
Reply




Реклама:
реклама
Buy text link .

All times are GMT. The time now is 07:28.
Top

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.