Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Олимпиады

Страница: 1 |

 

  Вопрос: Бейсик.Помогите Добавлено: 28.03.07 20:18  

Автор вопроса:  Наташа | ICQ: 424551516 
составить программу выведения всех четырехзначительных чисел (десятичных), сумма цифр которых равняется данному целому числу.Помогите мне нужно написать эту программу на Бейсике.Спасибо.

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 BUMM ®



Вопросов: 8
Ответов: 482
 Профиль | | #1 Добавлено: 14.04.07 20:37
на каком бейсике?

предлагаю кривое но функциональное решение на VBScript
dim num
dim i
dim s
dim res
dim a, b, c, d
num = inputbox("insert number";)
'
for i=1000 to 9999
s = cstr(i)
a =Cint(mid(s,1,1))
b =Cint(mid(s,2,1))
c =Cint(mid(s,3,1))
d =Cint(mid(s,4,1))
if a+b+c+d = Cint(num)  then res = res  & Cstr(i) & ";"
next                    
msgbox(res)


в прмере номер переводится в строку а потом суммируются буквы(в смысле цифры) и сравниваются с введенным числом.

есть еще математический способ, но мне воблом щас вспоминать математику


Ответить

Номер ответа: 2
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #2
Добавлено: 14.04.07 23:57
for i = 1 to 9
for j = 0 to 9
for k = 0 to 9
if n-i-j-k >= 0 then
res = res + cstr(i) + cstr(j) + cstr(k) + cstr(n-i-j-k) + "; ";
end if
next
next
next

Ответить

Номер ответа: 3
Автор ответа:
 BUMM ®



Вопросов: 8
Ответов: 482
 Профиль | | #3 Добавлено: 15.04.07 02:34
for i = 1 to 9
for j = 0 to 9
for k = 0 to 9
if n-i-j-k >= 0 then
res = res + cstr(i) + cstr(j) + cstr(k) + cstr(n-i-j-k) + "; ";
end if
next
next
next


а если n=20 или двух-четырехзначное число? черз циклы правильнее но надо доработь.

Ответить

Номер ответа: 4
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 15.04.07 02:46
ахда. Забыл and n-i-j-k<=9

Ответить

Номер ответа: 5
Автор ответа:
 BUMM ®



Вопросов: 8
Ответов: 482
 Профиль | | #5 Добавлено: 15.04.07 11:01
ахда. Забыл and n-i-j-k<=9

все равно не так, надо еше один цикл добавить и условие поменять
...
for m = 0 to 9
...
...
 n-i-j-k-m = 0
res = res + cstr(i) + cstr(j) + cstr(k) + cstr(m) + "; "
...
next

Ответить

Номер ответа: 6
Автор ответа:
 BUMM ®



Вопросов: 8
Ответов: 482
 Профиль | | #6 Добавлено: 15.04.07 13:21
хотя наверно правильно, просто если ввести 20 то все варианты невойдут в строку.
и n не может быть более 36, Чегото я стормозил

Ответить

Номер ответа: 7
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 15.04.07 19:14
Наверно, ты не понял решение :) Если известна сумма и первые три цифры, то четвертую можно вычислить, если не забыть проверить, что она будет цифрой :)

Ответить

Номер ответа: 8
Автор ответа:
 BUMM ®



Вопросов: 8
Ответов: 482
 Профиль | | #8 Добавлено: 15.04.07 19:18
я это понял во время написания поста №6 :) а до этого я стормозил :(

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам