// // Разработал GonanSoft // int i; unsigned long long k=0; // сумма зёрен на i-ом шаге unsigned long long s=1; // количество зерен в i-ой клетке unsigned long long n; // переменная признак окончания
cout << 'количество зерен '; cin>>n; for (i = 1; i <= 64; i++) { k=k+s; if (n<k) break; s=s<<1; }
if (n<>18446744073709551615) //это проверка на максимум зёрен cout << 'Номер клетки = ' << i << '\n'; else cout << 'Сумма зёрен не превысит 18446744073709551615 ' << i << '\n'; //
int minimal_digit(int n) { const int base = 10; int min_digit = 0; while (n>0) { int digit = n%base; if (digit < min_digit) min_digit = digit; n /= base; } return min_digit; }
int filter_digits(int n, int filter_by) { const int base = 10; int pow_base = 1; int result = 0;
if (filter_by == 0) { return n; }
while (n>0) { int digit = n%base; if (digit % filter_by != 0) { result += digit * pow_base; pow_base *= base; } n /= base; }
// Разработал GonanSoft
//
int i;
unsigned long long k=0; // сумма зёрен на i-ом шаге
unsigned long long s=1; // количество зерен в i-ой клетке
unsigned long long n; // переменная признак окончания
cout << 'количество зерен ';
cin>>n;
for (i = 1; i <= 64; i++)
{
k=k+s;
if (n<k)
break;
s=s<<1;
}
if (n<>18446744073709551615) //это проверка на максимум зёрен
cout << 'Номер клетки = ' << i << '\n';
else
cout << 'Сумма зёрен не превысит 18446744073709551615 ' << i << '\n';
//
int minimal_digit(int n)
{
const int base = 10;
int min_digit = 0;
while (n>0) {
int digit = n%base;
if (digit < min_digit)
min_digit = digit;
n /= base;
}
return min_digit;
}
int filter_digits(int n, int filter_by)
{
const int base = 10;
int pow_base = 1;
int result = 0;
if (filter_by == 0) {
return n;
}
while (n>0) {
int digit = n%base;
if (digit % filter_by != 0) {
result += digit * pow_base;
pow_base *= base;
}
n /= base;
}
return result;
}
int main()
{
int n;
std::cout << "Введите число n: " << std::endl;
std::cin >> n;
int digit = minimal_digit(n);
int result = filter_digits(n, digit);
std::cout << "ответ: " << result << std::endl;
return 0;
}