Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Конвертация числа в строку и обратно, условие исключения, разность. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строка http://www.cyberforum.ru/cpp-beginners/thread190095.html
Столкнулся с проблемой: заменить все латинские буквы на *. как же задать в ифе (если итый элемент есть в буквах-исключениях) s='*'; как это сделать, кроме s=A || s=B || s=C......
C++ Почему на экран выводится цифры в формате с E (4.34e)? Добрый день! Есть следующая функция #include <iostream> using namespace std; double* test(char *A){ char ch_year ; char ch_month ; http://www.cyberforum.ru/cpp-beginners/thread190092.html
Как создать динамический массив размерностью m на n? C++
подскажите, а то я только n на n создавать умею)
не могу сделать лабораторки по инфе на языке C++ C++
помогите не получаются лабы по инфе!!! Посмотрите кто может помочь я 8 вариант! просто сроки поджимают а надо сдать 7 лабораторок по инфе!!! студент 1 курса Прикрепляйте файлы к сообщениям.
C++ Лабораторная работа по С++.Не поняла циклы http://www.cyberforum.ru/cpp-beginners/thread190066.html
дана последовательность n из вещественных чисел. Определить, образуют ли они возрастающую последовательность?
C++ Перевод числа из 10 с.с. в 8 с.с. не пойму как создать программу по переводу числа из 10 с.с. в 8 с.с. . Дали несколько задач на расчётно-графическую работу,а учитель толком не объясняет,хотя дата сдачи - через неделю. подробнее

Показать сообщение отдельно
Напильнег
480 / 118 / 10
Регистрация: 30.09.2010
Сообщений: 473
15.11.2010, 21:11
Цитата Сообщение от 4ance Посмотреть сообщение
C++
1
2
3
4
5
6
7
                            // вычисляем основное число
                            sprintf(line, "%d%d%d%d", a, b, c, d);
                            sscanf(line, "%d", &num);
 
                            // вычисляем обратное число
                            sprintf(line, "%d%d%d%d", d, c, b, a);
                            sscanf(line, "%d", &rev_num);
Хм, оригинально. Только вряд ли это будет работать быстрее трех умножений + обвязка...

Ладно, раз пошла такая пьянка, вот вам мой вариантег, в котором задача решается как без умножений, так и без преобразований в строку:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  num=rev_num=0;
  for (a=1; a<10; a++) {
    num+=1000; rev_num+=1;
    if (1) {
      for (b=1; b<10; b++) {
        num+=100; rev_num+=10;
        if ((b!=a)) {
          for (c=1; c<10; c++) {
            num+=10; rev_num+=100;
            if ((c!=a)&&(c!=b)) {
              for (d=1; d<10; d++) {
                num+=1; rev_num+=1000;
                if ((d!=a)&&(d!=b)&&(d!=c)) {
                  if (rev_num==(num-k)) cout<<a<<b<<c<<d<<endl;
                }
              }
              num-=9; rev_num-=9000;
            }
          }
          num-=90; rev_num-=900;
        }
      }
      num-=900; rev_num-=90;
    }
  }
  num-=9000; rev_num-=9;
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru