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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2013, 16:07   #1
Гузель23
 
Регистрация: 03.03.2013
Сообщений: 9
По умолчанию среди всех n-значных чисел указать те сумма цифр которых равна данному числу k. (C#)

Привет всем, помогите пожалуйста разобраться с задачей, не пойму что не так.
Задача: среди всех n-значных чисел указать те сумма цифр которых равна данному числу k.
Код:
using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            int n, k, p, s, j, i,m;
            Console.Write("Введите n: "); 
            n = (int)Math.Pow(10, Convert.ToInt32(Console.ReadLine()));
            Console.Write("Введите k: ");
            k = Convert.ToInt32(Console.ReadLine());
            m = n;
            j = 1;
            for (i = 1; i < m;i++ )
            {
                j = j * 10;
            }
                for (i = j / 10; i < n - 1; i++)
                {
                    p = i;
                    s = 0;
                    while (p != 0)
                    {
                        s = s + p % 10;
                        p = p / 10;
                    }
                    if (s == k)
                        Console.WriteLine("Число: {0}", i);
                }
                Console.ReadKey();
            }
        }
    }
если я пишу n=2,т.е двузначное число, то у меня получается цикл от 1 до 99, а не от 10 до 99

Последний раз редактировалось Stilet; 03.03.2013 в 16:24.
Гузель23 вне форума Ответить с цитированием
Старый 03.03.2013, 16:29   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Упростим?
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static int suma(int n) { int k = 0; for (int i = n; i > 0; i /= 10) k += i % 10; return k; }
        static void Main(string[] args)
        {
            int k=23;
            for (int n = 1; n < 1000; n++) if (k == suma(n)) Console.WriteLine(n);
            Console.WriteLine("Все"); Console.ReadKey();
            
        }
    }
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.03.2013, 20:07   #3
Гузель23
 
Регистрация: 03.03.2013
Сообщений: 9
По умолчанию

Дело в том, что я только начала изучать и писать на c#, и у меня могут не принять ваш вариант программы, т.к нужно написать все максимально просто и подробно.)
Гузель23 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Дан текстовый файл. Напечатать все строки, длина которых равна данному числу. SaratovAreaNetwork Помощь студентам 3 18.04.2012 18:50
Сколько n-значных чисел можно образовать из двух цифр 5 и 9, в которых три одинаковые цифры не стоят рядом Thunder Dragon Паскаль, Turbo Pascal, PascalABC.NET 7 26.03.2012 20:05
Программа, которая выводит на экран все четырехзначные числа, сумма цифр которых равна 7 vitaaly Паскаль, Turbo Pascal, PascalABC.NET 3 06.02.2012 15:46
определить все двузначные числа сумма квадратов цифр которых кратна числу 15 [Pascal] mrRastom Помощь студентам 5 16.12.2010 09:47
Нахождение в столбце с числами строк, сумма чисел которых равна определенному значению KNatalia Microsoft Office Excel 2 16.09.2009 08:42