Другие языки программирования и технологии

Очень важный... C++

Есть A число и B число. Нужно найти тот число которое содержит цифры B числа, и которое больше или равен A числу, если нет такое написать "0";
Yuriyt555
Yuriyt555
97
Ночной кошмар без строк xD

#include <math.h>
#include <iostream>
using namespace std;
int SortNumber(int x){
int i, j;
for (i = 1; i <= (int)log10(x) + 1; i++)
for (j = i; j <= (int)log10(x) + 1; x = (x / (int)pow(10, i - 1) % 10) <
(x / (int)pow(10, j - 1) % 10) ? x - x / (int)pow(10, i - 1) % 10 *
(int)pow(10, i - 1) + x / (int)pow(10, j - 1) % 10 * (int)pow(10, i - 1)
- x / (int)pow(10, j - 1) % 10 * (int)pow(10, j - 1) +
x / (int)pow(10, i - 1) % 10 * (int)pow(10, j - 1) : x, j++);
return x;
}
int main() {
int a, b, i;
cout << "A = "; cin >> a;
cout << "B = "; cin >> b;
b = SortNumber(b);
for (i = a; i < pow(10, (int)log10(a) + 1) && SortNumber(i) != b; i++);
cout << (SortNumber(i) != b? 0 : i);
getchar();
return 0;
}
Клаус Бош
Клаус Бош
92 967
Лучший ответ
Денис Николаевич у него в комментарии число содержит 1000 знаков, никуда кроме строки не влезает
PS: я сначала сделал ему программу с числами
PPS: и ему (опять же один из комментариев) нужно наименьшее
Денис Николаевич Упс, наименьшее она находит :)
До 1000 цифр в числе, по комментарию?

#include "iostream"
#include "cstring"
using namespace std;
int main(){
char a[1000],b[1000]; cout<<"A: "; cin>>a; cout<<"B: "; cin>>b;
for(int i=1;b[i];i++)for(int j=1;b[j];j++)
if(b[j-1]<b[j]){char k=b[j-1]; b[j-1]=b[j];b[j]=k;}
cout<<(strcmp(b,a)>=0?b:"0")<<endl; cin.get(); cin.get();}
Дмитрий Салмин
Дмитрий Салмин
97 855
Yuriyt555 но неправильная программа. нужно найти тот число, которое составит цифры числа Б, и самая маленкая
а можно пример?
PS:
например найти те цифры числа B которые больше цифры A
for(_B=B;_B;_B/=10)if((_B%10)>A)cout<<(_B%10);
Гена Лепесевич
Гена Лепесевич
78 805
Yuriyt555 input:A=3075
B=6604
output: 4066
Ну тут не тривиально, без пузыря не разрешится задачка. Как минимум 1 рекурсия тут, чтобы записать цифры. Или методом перевода в строку, затем снова в число. Строк на 30-40 будет программка. Сколько дадите денег и какие сроки?
Yuriyt555 можно бесплатно? просто очень важно, буду благодарен ((( 1 час.. Пожалуйста ((