Вложенные Циклы

  • Автор темы Krestoman94
  • Дата начала
K

Krestoman94

#1
Для натуральных чисел лежащих в диапазоне от к1 до к2 проверить признак делимости на 9(сумма цифр числа должна также делиться на 9). Сколько таких чисел в заданном диапазоне?
Программа:
#include<iostream.h>
void main()
{
int k1, k2, x, n;
cout<<"k1";
cin>>k1;
cout<<"k2";
cin>>k2;
for(x=k1;x<=k2;x++)
if(x%9==0)
n++;
cout<<"number"<<n;
}

Вычислить значение выражения z=П(k*E(i+k)).
П от k=1 до n. n вводится с клавиатуры. Е от i=1 до 10.
программа:
#include<iostream.h>
#include<math.h>
void main()
{
int i, n, k, S=0, P=1;
cout<<"n=";
cin>>n;
for(k=1;k<=n;k++)
{
for(i=1;i<=10;i++)
S=S+i+k;
}
P=P*k*S;
cout<<"z="<<P;
}
преподаватель говорит что неправильно. помогите пожалуйста.
Язык borland C++.
 
U
#2
Я извеняюсь по первому, вы уверены, что правильно будет все работать? и что означает сумма чисел тоже должна делиться на 9. Ладно к первому вопросы
C++:
for(x=k1;x<=k2;x++)
if(x%9==0)
n++;
cout<<"number"<<n;
}
эт вообще что за шайтан код? Может я чего не допонимаю, разъясните пожалуста
п.с.
а накой вы лишнюю переменную ввиде x создаете? используйте k1.
Вот еще чего, а что за число n?
вы его увеличиваете, а значения никакого не присваивали и что оно делает?
 
K

Krestoman94

#3
Это С++. n подсчитывает числа делящиеся на 9. сумма цифр числа тоже должна делиться на 9.
 
U
#4
Это С++. n подсчитывает числа делящиеся на 9. сумма цифр числа тоже должна делиться на 9.
Я заметил, что это C++. Все же, n вы должны в самом начале назначить как n=0;
и все же, объясните, что означает сумма чисел должна делиться на 9. Если 18 представить ввиде 1 и 8, их сумма равна 9, и она делиться на 9, но так же и 18 спокойно поделить на 9, так что не совсем понимаю вопроса.

Если можно расшифруйте формулу во втором приложении.
Всегда не любил расшифровывать задания в институте. =)
 
K

Krestoman94

#5
Преподаватель сказал что проверить признак это значит, доказать что действительно, если сумма цифр числа делится на 9 то и само число делится на 9. насчёт n=0 согласен. Я просто программирование только изучать начал. но без посторонней помощи никак не справлюсь.
 
K

Krestoman94

#6
Если уж совсем неправильно, то напишите новую программу. Мне это необходимо. У меня ещё десятки подобных задач. но мне нужен хотя бы один образец
 
U
#7
C++:
#include<iostream.h>
int main()
{
int k1, k2, n;
std::cout<<"k1:";
std::cin>>k1;
std::cout<<"k2:";
std::cin>>k2;
if (k1>k2)
swap(k1,k2); // юзеры разные, если к1 больше к2 меняем их местами
if (k1==k2) // тут правда есть частный случай, если k1 и k2 делятся на 9. опять же ваше дело, мое поумничать.
return 1;
if (k1<0||k2<0) // опять же, если меньше 0, не карсиво выходит, хотя дело ваше, отрицательные числа можно делить на 9
return 2;
for(;k1<=k2;k1++)
if(k1%9==0)
n++;
std::cout<<"number:"<<n; // не забывай пробел или двоеточие, вывод будет не красивый.
return 0;
}
Не все так плохо.
только объясните поподробней вторую задачу, хоть убей не вкурю чего хотят.
 
W

Whatka

#8
ваш код не совсем верен
тут всё уперается в признак деления на 9
на примере легче показать
4782969 - сумма чисел 45 это число делится на 9? 4+5=9 да 9=9.
то есть мы можем получить сумму чисел отличную от 9 ,которую тоже необходимо проверить по признаку
и так несколько раз


вторая задача правильно ли я понял
сумма по k от 1 до n ( k*(сумму по i от 1 до 10 (i+k)) )?
 
K

Krestoman94

#9
Произведение по k от 1 до n ( k*(сумму по i от 1 до 10 (i+k)) )?



Добавлено: Произведение по k от 1 до n ( k*(сумму по i от 1 до 10 (i+k))
 
U
#10
ваш код не совсем верен
тут всё уперается в признак деления на 9
на примере легче показать
4782969 - сумма чисел 45 это число делится на 9? 4+5=9 да 9=9.
то есть мы можем получить сумму чисел отличную от 9 ,которую тоже необходимо проверить по признаку
и так несколько раз


вторая задача правильно ли я понял
сумма по k от 1 до n ( k*(сумму по i от 1 до 10 (i+k)) )?
Ну как бы 4782969/9=531441 т.е. это число само по себе делится на 9
По признаку делимости на 9 сумма всех чисел числа (еще не бред несу?) делится на 9 то и число делится на 9.
 
R

rrrFer

#11
вятка намекает что нужно использовать рекурсию, я согласен )
 
W

Whatka

#12
просто судя по заданию преподователь тоже намекал(не явным образом) на рекурсию

цитата
Ну как бы 4782969/9=531441 т.е. это число само по себе делится на 9По признаку делимости на 9 сумма всех чисел числа (еще не бред несу?) делится на 9 то и число делится на 9.
конец цитаты

а как вы определили что это число делится на 9?
нельзя ничем пользоваться кроме признака
 
U
#13
r04
Whatka
Всегда не любил расшифровывать задачи преподов. И велосипедов городить.

А определю, да легко! на глаз...
 
W

Whatka

#14
тут надо прояснить:
понимание сути проблемы- четверть решения

велосипед??ты про рекурсию?про моё предложение ,которое расширяет множество
условий которым удовлетворяет решение?

а про определение на глаз:
это ты с элементарным условием проделал ,а допустим
тебе нужно будет проверить удовлетворяет ли число огромной формуле
и что ты будешь делать?


суть таких(простых) заданий и состоит в том,чтобы научиться
использовать твои "велосипеды"
 
U
#15
тут надо прояснить:
понимание сути проблемы- четверть решения

велосипед??ты про рекурсию?про моё предложение ,которое расширяет множество
условий которым удовлетворяет решение?

а про определение на глаз:
это ты с элементарным условием проделал ,а допустим
тебе нужно будет проверить удовлетворяет ли число огромной формуле
и что ты будешь делать?


суть таких(простых) заданий и состоит в том,чтобы научиться
использовать твои "велосипеды"
Потому работаю на 1/4 от того что нужно. Ну что ж, надеюсь когда нибудь буду на 1/3, стремимся, скажем так.
п.с.
Спасибо за разъяснения, я оказываеться не совсем глуп и такой вариант рассматривал в самом начале, но лень батюшка подсказала, что тут простенькая задачка, на которой нужно простенькое решение.
П.П.С.
Ну если автор, попросит (а то как то флуд разводим в топе, а автора то и нет) так поможем, а пока пожалуй не будем страдать э... разводить демогогию в пустую

Ан нет, вот куча тем... кстати, почему я сообщения не могу отправлять?:)