Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2013, 21:42   #1
Veryn4ik1993
Пользователь
 
Регистрация: 12.09.2012
Сообщений: 81
По умолчанию Перестановка чисел

Выведите на экран все возможные трехзначные числа, полученные путем перестановки цифр трехзначного числа, вводимого с клавиатуры.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ex6
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите трехзначное число: ");
            int x = int.Parse(Console.ReadLine());
            if ((x < 100) || (x > 999)) Console.WriteLine("Вы ввели не трехзначное число!");
            else
            {
                int a = x / 100;
                int b = x / 10 % 10;
                int c = x % 10;

                int d1 = b * 100 + a * 10 + c;
                int d2 = b * 100 + c * 10 + a;
                int d3 = a * 100 + c * 10 + b;
                int d4 = c * 100 + a * 10 + b;
                int d5 = c * 100 + b * 10 + a;
              
                Console.WriteLine("Само число - " + x);
                Console.WriteLine("- " + d1);
                Console.WriteLine("- " + d2);
                Console.WriteLine("- " + d3); 
                Console.WriteLine("- " + d4);
                Console.WriteLine("- " + d5); 
               
                Console.ReadLine();
                Console.ReadKey();
            }  
        }
    }
}

Мне сказали, что такая перестановка не подходит, подскажите хотя бы идею, как это сделать

Последний раз редактировалось Stilet; 19.02.2013 в 21:51.
Veryn4ik1993 вне форума Ответить с цитированием
Старый 19.02.2013, 23:09   #2
andrew_jr20
Пользователь
 
Регистрация: 01.06.2011
Сообщений: 53
По умолчанию

А если в числе будут повторяться цифры? Например, для числа 333 программа в итоге 6 раз выведет 333. Ну и нули - если будет исходное число 100 - то остальные числа не будут трёхзначными.
andrew_jr20 вне форума Ответить с цитированием
Старый 20.02.2013, 11:35   #3
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Мне сказали, что такая перестановка не подходит, подскажите хотя бы идею, как это сделать
1) Не манипулировать числами, манипулировать цифрами (т.е. читать из ввода строку, а не число).
2) Проверять, сколько в числе одинаковых цифр (в отдельной функции); в зависимости от этого, вызывать одну из трёх функций.
3) Функции вывода перестановок должны дополнительно проверять при выводе каждой перестановки, не '0' ли первый символ и если да - пропускать эту перестановку.

Тесты:
Код:
ВВОД:
555
ВЫВОД:
555

ВВОД:
123
ВЫВОД:
123
132
213
231
312
321

ВВОД:
205
ВЫВОД:
205
250
520
502

ВВОД:
117
ВЫВОД:
117
171
711

ВВОД:
200
ВЫВОД:
200

ВВОД:
505
ВЫВОД:
550
505
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перестановка элементов. xEk Помощь студентам 1 31.05.2012 19:43
Дана последовательность вещественных чисел. каждая пара чисел задает границы отрезка. Найти количество целых чисел на отрезках 'studentka' Помощь студентам 6 30.11.2011 18:35
Ввести несколько чисел (кол-во чисел запрашивать с экрана). Определить, сколько чисел, меньших заданного Lirika Помощь студентам 0 08.05.2010 21:39
Перестановка чисел в массиве в обратном порядке Student117 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 22.10.2009 06:14
Перестановка Roman Помощь студентам 3 29.04.2007 05:37