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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
sv011
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 25
#1

Числа, сумма цифр которых делится на K - C++

17.11.2012, 19:34. Просмотров 1220. Ответов 14
Метки нет (Все метки)

Вводятся два числа N и K. Выведите количество чисел из диапазона от 1 до N включительно таких, что их сумма цифр делится на K.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
int main(){
         int n,k,cnt=0;
 
         cin>>n>>k;
        
         for(int i=1;i<=n;i++){
             
             int s=(i%10)+(i/10);
             
             if(s%k==0){
                 cnt++;}
         }
 
         cout<<cnt;
 
return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2012, 19:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Числа, сумма цифр которых делится на K (C++):

Натуральные числа у которых сумма цифр делится на K - C++
2. Найдите количество R-разрядных натуральных чисел, сумма цифр которых делится на K. Примечание: в этой задаче считаем, что 0 к...

Найти все четырёхзначные числа, у которых сумма крайних цифр равна сумме средних цифр, а само число делится на 6 и 27 - C++
найти все четырёхзначные числа , у которых сумма крайних цифр равна сумме средних цифр , а само число делится на 6 и 27 . В С++

Найти все двузначные числа, сумма квадратов цифр которых делится на 17 - C++
Найти все двузначные числа, сумма квадратов цифр которых делится на 17.

Вывести числа, сумма десятичных цифр которых равна n и само число делится на m - C++
2)Из чисел от 10 до 99 вывести те, сумма цифр которых равна n и само число делится на m.

Найти все двухзначные числа, сумма цифр которых делится на заданное пользователем число - C++
Найти все двухзначные числа, сумма цифр которых делится на заданное пользователем число.

Проверить гипотезу: если сумма цифр числа делится на 3, то и само число делится на 3 - C++
Проверить гипотезу: если сумма цифр числа делится на 3, то и само число делится на 3.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Эксперт CЭксперт С++
13208 / 7479 / 840
Регистрация: 27.09.2012
Сообщений: 18,388
Записей в блоге: 3
Завершенные тесты: 1
17.11.2012, 19:44 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int summ(int num){
    if(!num) return 0;
    return ((num%10)+summ(num/10));
}
 
int main()
{
    int n=1000,k=18;
    for(int i=1;i<=n;++i)
        if((summ(i)%k)==0)
            std::cout<<i<<std::endl;
    std::cin.get();
    return 0;
}
Добавлено через 2 минуты
А, там количество. Тогда так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int summ(int num){
    if(!num) return 0;
    return ((num%10)+summ(num/10));
}
 
int main()
{
    int n=1000,k=18;
    int count=0;
    for(int i=1;i<=n;++i)
        if((summ(i)%k)==0)
            count++;
    std::cout<<"Count: "<<count<<std::endl;
    std::cin.get();
    return 0;
}
1
sv011
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 25
17.11.2012, 19:52  [ТС] #3
почему нельзя так, как у меня?все правильно же...вроде
0
Croessmah
Эксперт CЭксперт С++
13208 / 7479 / 840
Регистрация: 27.09.2012
Сообщений: 18,388
Записей в блоге: 3
Завершенные тесты: 1
17.11.2012, 19:59 #4
Цитата Сообщение от sv011 Посмотреть сообщение
почему нельзя так, как у меня?все правильно же...вроде
C++
1
2
3
4
5
6
7
         for(int i=1;i<=n;i++){
             
             int s=(i%10)+(i/10);
             
             if(s%k==0){
                 cnt++;}
         }
Например, i=215, k=5;
s=(215%10)+(215/10)=5+21=26
26%5=1

Добавлено через 1 минуту
Вы не находите сумму. Вы находите последняя_цифра+число_без_последней_цифры, хотя для двухзначиных чисел, наверное, пойдет
1
sv011
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 25
17.11.2012, 20:02  [ТС] #5
получается, к примеру число 11, значит сумма=1+2+3+4+...+11?
0
Croessmah
Эксперт CЭксперт С++
13208 / 7479 / 840
Регистрация: 27.09.2012
Сообщений: 18,388
Записей в блоге: 3
Завершенные тесты: 1
17.11.2012, 20:04 #6
число 11 это 1+1 (если, конечно, я правильно понял задание)
1
sv011
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 25
17.11.2012, 20:09  [ТС] #7
а если число 5...то сумма=1+2+3+4+5?
0
Croessmah
Эксперт CЭксперт С++
13208 / 7479 / 840
Регистрация: 27.09.2012
Сообщений: 18,388
Записей в блоге: 3
Завершенные тесты: 1
17.11.2012, 20:16 #8
У Вас в задании сумма цифр числа или сумма всех чисел от 1 до i?
1
sv011
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 25
17.11.2012, 20:25  [ТС] #9
Examples
Input Output
100 3 33

22 4 5



так, как я решала, такие значения получаются...но когда сдаешь задачку на acm пишет-неправильный ответ.

Добавлено через 4 минуты
т.е. n=100,k=3...ответ 33
0
Croessmah
Эксперт CЭксперт С++
13208 / 7479 / 840
Регистрация: 27.09.2012
Сообщений: 18,388
Записей в блоге: 3
Завершенные тесты: 1
17.11.2012, 20:27 #10
Ну значит мой пример правильный.
Сумма цифр числа 3865 = 3+8+6+5 = 22
а по Вашему коду 3865 = 5+386 = 391
1
sv011
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 25
17.11.2012, 21:29  [ТС] #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>                  
using namespace std;                 
int main(){                          
         int n,k,cnt=0,s=0,sum=0;    
                                     
         cin>>n>>k;                  
         int a[n];                   
                                     
             for(int i=0;i<n;i++){   
                                     
                 a[i];               
                 s+=a[i];            
                 while(s>0){         
                                     
                 sum+=s%10;          
                 s/10;               
                                     
                 if(sum%k==0) cnt++; 
                 }                   
             }                       
                                     
         cout<<cnt;                  
                                     
return 0;                            
}
правильно?а как теперь этот код оптимизировать без введения функций?
0
Croessmah
Эксперт CЭксперт С++
13208 / 7479 / 840
Регистрация: 27.09.2012
Сообщений: 18,388
Записей в блоге: 3
Завершенные тесты: 1
17.11.2012, 21:36 #12
Цитата Сообщение от sv011 Посмотреть сообщение
правильно?
Нет.
Переделанный:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>                  
using namespace std;                 
int main(){                          
    int n,k,cnt=0,s=0,sum;                                     
    cin>>n>>k;                  
    for(int i=1;i<=n;i++){
        s=i; sum=0;
        while(s>0){ 
            sum+=s%10;          
            s=s/10; 
        }
        if(sum%k==0) cnt++; 
    }                       
    cout<<cnt;
    return 0;                            
}
1
sv011
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 25
17.11.2012, 21:45  [ТС] #13
ааа...ну тогда получается сумма цифр самого числа, т.е. сумма15=1+5, а не 1+2+3+,,,+15....или если число 350, то сумма=3+5+0, да?
0
Croessmah
Эксперт CЭксперт С++
13208 / 7479 / 840
Регистрация: 27.09.2012
Сообщений: 18,388
Записей в блоге: 3
Завершенные тесты: 1
17.11.2012, 21:48 #14
Цитата Сообщение от sv011 Посмотреть сообщение
или если число 350, то сумма=3+5+0, да?
Наконец то =)))
Да, так оно и есть.
1
sv011
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 25
17.11.2012, 21:52  [ТС] #15
ахах....спасибо большое)))я поняла)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2012, 21:52
Привет! Вот еще темы с ответами:

Количество N-разрядных натуральных чисел, у которых сумма цифр делится на K - C++
Пожалуйста, помогите решить задачу: Определите количество N-разрядных натуральных чисел, у которых сумма цифр делится на K. ...

Среди двузначных чисел найти те, сумма квадратов цифр которых делится на 13 - C++
Не знаю как дописать основную часть программы #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;fstream&gt; using namespace std; int...

Найти номера строк матрицы, сумма цифр элементов которых делится на 3 - C++
• Найти номера строк матрицы, сумма цифр элементов которых делится на 3

Найти количество N-разрядных натуральных чисел, у которых сумма цифр делится на K - C++
Условие задачи: Определите количество N-разрядных натуральных чисел, у которых сумма цифр делится на K. Входные данные: числа N и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.11.2012, 21:52
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru