 |
Задача, помогите плиз! |
 |
28.05.2005, 14:09
|
#1
|
Optimist
Join Date: 10 2001
Location: Yerevan
Posts: 712
Rep Power: 5
|
Задача, помогите плиз!
Плиз, помогите написать сдел. задачу на С++ . Алгоритм мне ясен, но прогу написать не получается.
Для заданных a,b,p натуральных чисел вычислить произведение всех тех натуральных чисел, принадлежащих промежутку [a,b], в p-ичном (кодировка) представлении которых нет повторяющихся цифр.
Спасибо
|
|
|
28.05.2005, 17:15
|
#2
|
Ego coder
Join Date: 07 2004
Location: Yerevan, Armenia
Age: 44
Posts: 3,738
Rep Power: 5
|
Держи..тока работает при р=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;
}
__________________
Каждый сам кузнец своего счастья, и несчастья тоже.
|
|
|
28.05.2005, 19:53
|
#3
|
Optimist
Join Date: 10 2001
Location: Yerevan
Posts: 712
Rep Power: 5
|
Thanks a lot!
Завтра попробую разобраться. Я не программер и далёк от этого и не имею представления о Vector-ax, но спасибо большое! Попробую разобраться 
Thanks again
|
|
|
 |
a newbie query: the optimal way to solve |
 |
02.06.2005, 06:21
|
#4
|
★★★★★★★★★★★★★
Join Date: 08 2004
Location: London, UK
Age: 46
Posts: 16,531
Rep Power: 8
|
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 digitreturn 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.
|
|
|
 |
02.06.2005, 10:59
|
#5
|
RAU
Join Date: 06 2005
Location: Yerevan
Age: 37
Posts: 2
Rep Power: 0
|
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;
}
|
|
|
02.06.2005, 11:23
|
#6
|
★★★★★★★★★★★★★
Join Date: 08 2004
Location: London, UK
Age: 46
Posts: 16,531
Rep Power: 8
|
тоже красивое решение  ... тока наскока правильно или красиво загромождать всем этим 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
|
|
|
02.06.2005, 12:15
|
#7
|
Moderator
Join Date: 02 2002
Location: Armenia
Age: 45
Posts: 5,226
Rep Power: 6
|
Hrach, neuzheli v programmeri podalsja?
|
|
|
02.06.2005, 13:41
|
#8
|
Optimist
Join Date: 10 2001
Location: Yerevan
Posts: 712
Rep Power: 5
|
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; }
|
|
|
02.06.2005, 14:19
|
#9
|
Грустно...
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 43
Posts: 21,717
Rep Power: 9
|
Люди пишущие void main достойны лишь ушата презрения.
|
|
|
02.06.2005, 14:36
|
#10
|
★★★★★★★★★★★★★
Join Date: 08 2004
Location: London, UK
Age: 46
Posts: 16,531
Rep Power: 8
|
Боится презрения лишь тот кто его заслуживает / а сам бы как решил?
__________________
Мадмазель, Медам, Месье! "Глория" меняет курс и направляется в Кейптаун! Кому это не нравится будет расстрелян на месте. (с)
http://texneg.livejournal.com
|
|
|
02.06.2005, 17:43
|
#11
|
Optimist
Join Date: 10 2001
Location: Yerevan
Posts: 712
Rep Power: 5
|
Quote:
Originally Posted by Agregat
Люди пишущие void main достойны лишь ушата презрения.
|
Друг скажи ламмеру- экономисту, какая разница как писать? void main() {
ili main() {
return 0;
???????
Мне с++ не нужен и поэтому мне без разницы как писать- главное, чтоб работало
|
|
|
02.06.2005, 17:52
|
#12
|
скромный VIP
Join Date: 06 2003
Location: Yerevan
Age: 38
Posts: 960
Rep Power: 0
|
Да Агреагат, ты прав, но с другой строны, пусакй маздайка сама догадается корректно ли завершилась программа или нет..Пускай подумает немножко чтоль...
п.с А к глобальной переменной придраться не хочешь?
__________________
И аткуда такие беруцца???
|
|
|
02.06.2005, 17:59
|
#13
|
Optimist
Join Date: 10 2001
Location: Yerevan
Posts: 712
Rep Power: 5
|
Analyst: Ok, sorry didn`t know what that was
Last edited by Vazgen Abgaryan; 02.06.2005 at 18:26.
|
|
|
03.06.2005, 03:48
|
#14
|
панаехавший
Join Date: 06 2003
Location: форпост
Age: 38
Posts: 4,007
Rep Power: 0
|
Quote:
Originally Posted by Vazgen Abgaryan
Друг скажи ламмеру- экономисту, какая разница как писать? void main() {
ili main() {
return 0;
???????
|
Zhor ba da qez petq a?
|
|
|
03.06.2005, 13:34
|
#15
|
★★★★★★★★★★★★★
Join Date: 08 2004
Location: London, UK
Age: 46
Posts: 16,531
Rep Power: 8
|
Quote:
Originally Posted by Vazgen Abgaryan
Друг скажи ламмеру- экономисту, какая разница
|
разница лишь в том что экономистов много а хороших программистов мало ... не в обиду но хорошо что ты экономист ...
__________________
Мадмазель, Медам, Месье! "Глория" меняет курс и направляется в Кейптаун! Кому это не нравится будет расстрелян на месте. (с)
http://texneg.livejournal.com
|
|
|
All times are GMT. The time now is 07:28. |
|
|