Математика целых чисел

Ответить
PeaceDuqe
Сообщения: 6
Зарегистрирован: 09 янв 2009, 22:49
Контактная информация:

Помогите пожалуйста решить ету вот задачку:
Проверить утверждение, что разность любого натурального числа и суммы его цифр кратна 9, для всех чисел, лежащих между заданными m и n.


П.С. сори, темку отдельную создать не смог, вот и пишу тута...
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

1000a+100b+10c+d-a-b-c-d=999a+99b+9c+0. Утверждение верно
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
PeaceDuqe
Сообщения: 6
Зарегистрирован: 09 янв 2009, 22:49
Контактная информация:

на Visual basic нуно написать... подскажите какие и сколько циклов нуно, штоб проверить утверждение
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Странно, вообще обычно перед написанием программы требуется поработать мозгом и оптимизировать алгоритм. В вашем случае алгоритм оптимизируется до вырожденного состояния
print "Утверждение верно"
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
PeaceDuqe
Сообщения: 6
Зарегистрирован: 09 янв 2009, 22:49
Контактная информация:

Код: Выделить всё

Private Sub Command1_Click()
Dim m As Integer, n As Integer
m = Text1.Text
n = text2.text
p = 1
For x = m To x <= n
s = 0
    y=x
    Do while y > 0
    t = у Mod 10
    s = s + t
    y=(y-t)/10
   loop
  L = (x - s) Mod 9
  If L <> 0 Then p = 0
End If
Next x
 If p <> 0 Then MsgBox ("Утверждение верно")
 Else: MsgBox ("Утверждение неверно")
 Enв if 
End Sub
хы) чтото вроде етого получилось :rolleyes:
PeaceDuqe
Сообщения: 6
Зарегистрирован: 09 янв 2009, 22:49
Контактная информация:

Код: Выделить всё

Private Sub Command1_Click()
Dim m As Integer, n As Integer
m = Text1.Text
n = text2.text
p = 1
For x = m To n
s = 0
    y=x
    Do while y > 0
    t = у Mod 10
    s = s + t
    y=(y-t)/10
   loop
  L = (x - s) Mod 9
  If L <> 0 Then p = 0
End If
Next x
 If p <> 0 Then MsgBox ("Утверждение верно")
 Else
 MsgBox ("Утверждение неверно")
 End if 
End Sub
хы) чтото вроде етого получилось :rolleyes:
П.С. с бэйсиком впервые пересекся, хз какие там апираторы и особенности)
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Можно перевести число в строку, вычесть из кода каждого символа строки код нуля, а полученные разности отнять от исходного числа. Если в итоге получится число, кратное девяти (а оно получится) - вывести "Утверждение верно".
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
PeaceDuqe
Сообщения: 6
Зарегистрирован: 09 янв 2009, 22:49
Контактная информация:

я тоже так хотел сделать, но хз... возня всякая с типом числа (строка - цифра) меня пугает)) намужу чтонить и результата никакого...((
serqei35
Сообщения: 1
Зарегистрирован: 14 янв 2009, 13:03

Есть неплохая книга по математическим основам программирования, советую почитать.
Скачать её можнр здесь: http://webprogrammer.wallst.ru/others1.html
Ответить