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

разработка нерекурсивных функций. - C++

Восстановить пароль Регистрация
 
PrettyNya
0 / 0 / 0
Регистрация: 04.01.2012
Сообщений: 12
04.01.2012, 13:35     разработка нерекурсивных функций. #1
Здравствуйте, задание таково - разработать функцию, которая для каждого заданного натурального числа N возвращает значение true - если число простое, false - составное, с помощью этой функции: для каждого целого числа на отрезке [a,b] вывести на экран сумму его цифр.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
using namespace std;
int s(int x);
 
int main() {
int a =10;
int b = 30;
int i;
 
for (i = a; i < b + 1; ++i) {
    printf("%d, ", s(i));
}
printf("\n");
return 0;
}
int s(int x){
    int s = 0;
    while (x){
        s+= x % 10;
        x/=10;
    }
    return s;
}
Вот, что напечатала, прошу посмотрите, если что не так, скажите:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.01.2012, 13:59     разработка нерекурсивных функций. #2
Цитата Сообщение от PrettyNya Посмотреть сообщение
разработка нерекурсивных функций.
Цитата Сообщение от PrettyNya Посмотреть сообщение
разработать функцию, которая для каждого заданного натурального числа N возвращает значение true - если число простое, false - составное,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
bool simple (size_t n)
{
   for ( int i = 2 ; i <= n / 2 ; ++i )
      if (  ! (n % i)  ) 
         return false;
   return true;
}      
 
int main ()
{
   size_t SimpleTrue = 3 , SimpleFalse = 4;
   std::cout << std::boolalpha << simple (SimpleTrue) << " " << simple (SimpleFalse) << std::endl;
}
http://liveworkspace.org/code/3e71d9...436a0a6ccdd338

Цитата Сообщение от PrettyNya Посмотреть сообщение
с помощью этой функции: для каждого целого числа на отрезке [a,b] вывести на экран сумму его цифр.
А при чем здесь эта функция?
PrettyNya
0 / 0 / 0
Регистрация: 04.01.2012
Сообщений: 12
04.01.2012, 14:08  [ТС]     разработка нерекурсивных функций. #3
Цитата Сообщение от go Посмотреть сообщение
А при чем здесь эта функция?
Не понимаю вашего вопроса, уточните.
Хотя нет, поняла. Я скопировал текст для другого задания
Для нужного мне: разработать функцию, которая для заданного натурального числа N возвращает сумму его цифр. С помощью данной функции: для каждого целого числа на отрезке [a,b] вывести на экран сумму его цифр.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.01.2012, 14:16     разработка нерекурсивных функций. #4
Цитата Сообщение от PrettyNya Посмотреть сообщение
разработать функцию, которая для заданного натурального числа N возвращает сумму его цифр. С помощью данной функции: для каждого целого числа на отрезке [a,b] вывести на экран сумму его цифр.
C++
1
2
3
4
size_t digsum ( int n )
{
    return n < 0 ? digsum ( -n ) : ( n > 9 ) ? n % 10 + digsum (n / 10) : n;
}
PrettyNya
0 / 0 / 0
Регистрация: 04.01.2012
Сообщений: 12
04.01.2012, 14:19  [ТС]     разработка нерекурсивных функций. #5
Спасибо, но для меня новичка и такой код сложен, поэтому буду рада, если поясните его.
Особено вот это

Цитата Сообщение от go Посмотреть сообщение
digsum ( -n ) : ( n > 9 )
Тут предполагается, что если принадлежит циферному промежутку? почему тгда -n?
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.01.2012, 14:21     разработка нерекурсивных функций. #6
Цитата Сообщение от PrettyNya Посмотреть сообщение
Тут предполагается, что если принадлежит циферному промежутку? почему тгда -n?
Да (проверяем одна ли цифра в числе). Но в начале, Если число отрицательное, то меняем знак. Вот поэтому -n
Yandex
Объявления
04.01.2012, 14:21     разработка нерекурсивных функций.
Ответ Создать тему
Опции темы

Текущее время: 19:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru