Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Даны натуральные числа m и n. Получить сумму натур 
:(
    Опции темы
Dwarf45
Дата 13.12.2016, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 13.12.2016

Репутация: нет
Всего: нет



Здравствуйте , помогите решить задачку , среда разработки DevC++ (значения m,n
 вводится с клавиатуры ) Как я понял решить нужно через цикл .
 
Даны натуральные числа m и n. Получить сумму натуральных чисел, меньших n, квадрат суммы цифр которых меньше m. 
PM MAIL   Вверх
vpf
Дата 13.12.2016, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 14.11.2016
Где: Moscow

Репутация: нет
Всего: нет



Дано n и m найти сумму N1 согласно условия.

Сумма натуральных чисел от 1 до k равна 
S = (k+1)*k/2 
Обратное уравнение для нахождения k 
k^2+k-2*S = 0
Решение основано на этих двух уравнениях
Прикладываю код на Matlab, его только переложить на C++
Код

clc
% дано  n и m  , найти N1
n = 8;
m = 984;

S = floor(sqrt(m));
res = roots([1,1,-2*S]); % res=[k1,k2]
k = floor(res(2));% k2 всегда больше нуля поэтому берем его и округляем

if(n > k)
    N1 = (k+1)*k/2;
else
    N1 = (n+1)*n/2;
end    
disp(N1);



Это сообщение отредактировал(а) vpf - 13.12.2016, 19:30
PM MAIL IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
feodorv
Дата 14.12.2016, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



А я понял так:
Код

#include <stdio.h>

int test( int num, int m)
{
  int dsum = 0;

  while( num > 0 )
  {
    dsum += num % 10;
    num /= 10;
  }

  return (dsum * dsum < m);
}

int main()
{
  int n, m;
  int sum = 0, num;

  printf( "Enter n & m:" );
  scanf( "%d %d", &n, &m);

  for( num = 1; num < n; ++num)
    if( test( num, m) ) sum += num;

  printf( "\nsum = %d\n", sum);

  return 0;
}



--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0693 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.