
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
27.11.2006, 12:18
|
|||
|---|---|---|---|
|
|||
Только начало |
|||
|
#18+
Доброго времени суток!!! Передомной как начинающим осваивать СИ++. Встала такая задача: Найти сумму всех чисел из интервала от 1000 до 9999, которые удовлетворяют условию, что остаток от деления первой цифры на вторую был равен сумме двух последних цифр. У меня неполучается сформулировать последовательность перебора чисел, как сами числа в разрядах обозвать? Подскажите пожалуйста кто может. Буду весьма признателен, за все отзывы заранее СПАСИБО! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 12:30
|
|||
|---|---|---|---|
Только начало |
|||
|
#18+
1. Перебирать, проще всего все подряд. 2. Выделять числа можно так: n/1000 n%1000/100 n%100/10 n%10 3. Ну, а дальше, использование формулы. 4. Обозвать можно n1,..n4 или массивом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 14:24
|
|||
|---|---|---|---|
|
|||
Только начало |
|||
|
#18+
#include<stdio.h> #include<conio.h> #include<math.h> main() { int n1,n2,n3,n4,n,sum=0; clrscr(); for (n=1000;n<9999;n++) { n1=n/1000; n2=n%1000/100; n3=n%100/10; n4=n%10; sum=sum+n; if(n2!=0) if((n1/n2)==(n3+n4)) { printf("%d\t%d\t",n,sum); } } getch(); } Работает, но масса чисел не совсем удовлетворяющих условию например 1101, 6706 и т.д. к тому же сумма чисел кое где отрицательные числа ???????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 14:28
|
|||
|---|---|---|---|
|
|||
Только начало |
|||
|
#18+
Правильно n2=(n%1000)/100; исправь также в других местах. У операции взятия модуля низкий приоритет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 14:28
|
|||
|---|---|---|---|
Только начало |
|||
|
#18+
Остаток от деления - % ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 16:34
|
|||
|---|---|---|---|
|
|||
Только начало |
|||
|
#18+
Былобы не плохо но, это непомогает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 16:59
|
|||
|---|---|---|---|
Только начало |
|||
|
#18+
serakuzБылобы не плохо но, это непомогает. С чего так решил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 17:02
|
|||
|---|---|---|---|
|
|||
Только начало |
|||
|
#18+
Исправил проверил и все равно каша получилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 17:22
|
|||
|---|---|---|---|
Только начало |
|||
|
#18+
serakuzИсправил проверил и все равно каша получилась. Что значит "каша"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 17:51
|
|||
|---|---|---|---|
Только начало |
|||
|
#18+
Каши не будет, если перевод строки поставить. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 18:01
|
|||
|---|---|---|---|
|
|||
Только начало |
|||
|
#18+
Большое Спасибо за помощь. Может у меня что то с програмкой не то, получается 1/1 остаток =1, 8/9 остаток =8 и т.д. да и в сумме отрицательные числа почемуто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 18:06
|
|||
|---|---|---|---|
Только начало |
|||
|
#18+
serakuzБольшое Спасибо за помощь. Может у меня что то с програмкой не то, получается 1/1 остаток =1, 8/9 остаток =8 и т.д. да и в сумме отрицательные числа почемуто. 8/9=8: А что такое остаток от деления знаешь? И еще раз повторю - остаток от деления берется операцией % ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 18:27
|
|||
|---|---|---|---|
|
|||
Только начало |
|||
|
#18+
#include<stdio.h> #include<conio.h> #include<math.h> main() { int n1,n2,n3,n4,i,sum=0; clrscr(); for (i=1000;i<=9999;i++) { n1=i/1000; n2=(i%1000)/100; n3=(i%100)/10; n4=i%10; sum=(sum+i); if(n2!=0) if((n1%n2)==(n3+n4)) { printf("%d\t%d\n",i,sum); } } getch(); } Все таже байда с числами. В чем же загвоздка??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 18:33
|
|||
|---|---|---|---|
Только начало |
|||
|
#18+
Ты суммируешь все подряд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 19:19
|
|||
|---|---|---|---|
|
|||
Только начало |
|||
|
#18+
Помимо суммы сами числа не соответствуют условию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 21:14
|
|||
|---|---|---|---|
|
|||
Только начало |
|||
|
#18+
Большое Всем СПАСИБО! С числами с Вашей помощью разобрался. Не получается правильно сумму этих чисел оформить. Буду признателен за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 21:49
|
|||
|---|---|---|---|
|
|||
Только начало |
|||
|
#18+
УРА!!! УРА!!! Все заработало!!! Всем Огромное СПАСИБО!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.11.2006, 21:57
|
|||
|---|---|---|---|
Только начало |
|||
|
#18+
serakuzУРА!!! УРА!!! Все заработало!!! Всем Огромное СПАСИБО!!! Охх студенты! P.S. Если понаблюдать за операцией '%', то можно заметить, что для переменной цикла она просто дает подпоследовательности с меньшим периодом. Для деления '/' - наоборот. Короче.. есть поле для оптимизации. Эххх... я-бы замочил. P.P.S. Проклятая привычка!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2006, 13:46
|
|||
|---|---|---|---|
|
|||
Только начало |
|||
|
#18+
Подскажите пожалуста как с такими задачами бороться: "Введенном слове поменять вторую букву на предпоследнею, а третью на последнею и наоборот." Какими типами переменных и функций следует воспользоваться? Огормное Всем Спасибо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2006, 14:05
|
|||
|---|---|---|---|
Только начало |
|||
|
#18+
serakuzПодскажите пожалуста как с такими задачами бороться: "Введенном слове поменять вторую букву на предпоследнею, а третью на последнею и наоборот." Какими типами переменных и функций следует воспользоваться? Огормное Всем Спасибо!!! Например, char * и strlen() будет вполне достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2006, 18:55
|
|||
|---|---|---|---|
|
|||
Только начало |
|||
|
#18+
С чего тут лучше начинать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2006, 09:04
|
|||
|---|---|---|---|
|
|||
Только начало |
|||
|
#18+
ПОМОГИТЕ ПОЖАЛУСТА !!!! Я ведь только учусь. С чего следует начать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2006, 09:36
|
|||
|---|---|---|---|
Только начало |
|||
|
#18+
serakuzПОМОГИТЕ ПОЖАЛУСТА !!!! Я ведь только учусь. С чего следует начать? Еще раз повторить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2006, 09:49
|
|||
|---|---|---|---|
|
|||
Только начало |
|||
|
#18+
Вы мне сильно помогли в первый раз теперь я умею решать подобные задачи. В этом же случае я снова у новых ворот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2006, 09:56
|
|||
|---|---|---|---|
Только начало |
|||
|
#18+
serakuzВы мне сильно помогли в первый раз теперь я умею решать подобные задачи. В этом же случае я снова у новых ворот. Одно из трактований строк - это массив байт, заканчивающийся нулем. Байт в С это char, массив - это указатель на память, где что-то лежит, соответственно char[n] - это массив строк. Если ты туда поместишь строку, не забыв, что она должна оканчиваться нулем, то с помощью функции strlen() ты сможешь определить ее длину. Ну а далее переставляй, то что тебе нужно, доступ к каждому символу массива можно получить с помощью обращения к массиву по индексу a[x]. Сохраняешь нужный символ, где нибудь, ставишь на его место требуемый, а на место, откуда взял требуемый ставишь сохранненый. Есть и другой вариант перестоновки, олимпиады по программированию выпускников школ годов 90-х. Но этот самый простой. Вопросы есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2029882]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
143ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
79ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 468ms |

| 0 / 0 |
