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

Использование функций. - C++

Восстановить пароль Регистрация
 
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
09.04.2012, 13:33     Использование функций. #1
1. Определить натуральное число не больше заданного n с наибольшей суммой делителей. Использовать функцию вычисления суммы делителей числа.
2. Написать функцию вставки элемента в массив. Все элементы после него сдвигаются на один вправо, а
последний элемент массива теряется.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2012, 13:33     Использование функций.
Посмотрите здесь:

C++ Использование функций
C++ Использование функций и шаблонов функций
C++ Использование функций
C++ Использование функций и шаблонов функций
C++ Использование функций
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kent
Нуб со стажем
 Аватар для kent
36 / 34 / 2
Регистрация: 19.02.2012
Сообщений: 118
10.04.2012, 15:45     Использование функций. #2
Цитата Сообщение от zttx Посмотреть сообщение
1. Определить натуральное число не больше заданного n с наибольшей суммой делителей. Использовать функцию вычисления суммы делителей числа.
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>
 
int divsumm(int n){
        int res=0;
        for(int i=2;i<n;i++)
                if(!(n%i))
                        res+=i;
        return res;
}
 
int main(){
        int n, max=0,maxsum=0;
        scanf("%u",&n);
        for(int i=1;i<n;i++){
                int sum=divsumm(i);
                if(sum>maxsum){
                        maxsum=sum;
                        max=i;
                }
        }
        printf("%u\n",max);
        return 0;
}
Цитата Сообщение от zttx Посмотреть сообщение
2. Написать функцию вставки элемента в массив. Все элементы после него сдвигаются на один вправо, а последний элемент массива теряется.
C
1
2
3
4
5
6
void insert(int *ar,int size,int n,int ins){
        int i;
        for(i=size-1;i>n;i--)
                ar[i]=ar[i-1];
        ar[i]=ins;
}
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
13.04.2012, 16:23  [ТС]     Использование функций. #3
скажите пожалуйста, а что это значит "if(!(n%i))"?
Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
13.04.2012, 17:24     Использование функций. #4
остаток от деления n на i равен нулю, т.е число n делится на i без остатка
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
16.04.2012, 14:04  [ТС]     Использование функций. #5
Цитата Сообщение от kent Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
int divsumm(int n){
     int res=0;
     for(int i=2;i<n;i++)
         if(!(n%i))
             res+=i;
     return res;
}
int main(){
     int n, max=0,maxsum=0;
     scanf("%u",&n);
     for(int i=1;i<n;i++){
         int sum=divsumm(i);
         if(sum>maxsum){
             maxsum=sum;
             max=i;
         }
     }
     printf("%u\n",max);
     return 0;
}
эта программа работает неправильно.. тут надо проверять все числа до заданного, а он выдает на 1 меньше заданного, хоть у него и не наибольшая сумма делителей.
kent
Нуб со стажем
 Аватар для kent
36 / 34 / 2
Регистрация: 19.02.2012
Сообщений: 118
20.04.2012, 17:44     Использование функций. #6
Цитата Сообщение от zttx Посмотреть сообщение
эта программа работает неправильно.. тут надо проверять все числа до заданного, а он выдает на 1 меньше заданного, хоть у него и не наибольшая сумма делителей.
измени
C
1
for(int i=1;i<n;i++)
на
C
1
for(int i=1;i<=n;i++)
Yandex
Объявления
20.04.2012, 17:44     Использование функций.
Ответ Создать тему
Опции темы

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