Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2011, 19:13   #1
Джиган
 
Регистрация: 07.02.2011
Сообщений: 7
По умолчанию Количетсво цифр натурального числа

Ребята, очень нужна помощь по задачке.
Дано натуральное число.
Вычислить кол-во всех цифр числа;
сумму цифр кратных 3;
произведение цифр больших числа X.

Дали подсказку: чтобы получить цифры в VBA необходимо делить число на 10 (знак "\"), пока оно не станет равно 0. Таким образом остаток - это и будут полученные цифры. И с ними необходимо произвести выше указанные операции.

Я решил ее так, но Basic ругается:

Код:
Sub n()
Dim n As Long, x As Integer, g As Byte, k As Byte, sum As Integer, pr As Integer
n = InputBox("Введи натуральное число")
x = InputBox("Введи x")
k = 0
sum = 0
pr = 1
    Do
        g = n \ 10
        k = k + 1
        If g Mod 3 = 0 Then sum = sum + g
        If g > x Then pr = pr * g
    Loop While n Mod 10 <> 0
MsgBox ("Количество цифр числа=" & k)
MsgBox ("Сумма цифр кратных трем=" & sum)
MsgBox ("Произведение цифр больше цифры X=" & pr)
End Sub
В чем же принципиальная ошибка? Может быть здесь надо все таки обычный цикл с параметром?


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 12.03.2011 в 20:32.
Джиган вне форума Ответить с цитированием
Старый 12.03.2011, 20:43   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ошибка тут:
Цитата:
Код:
g = n \ 10
вы пытаетесь получить цифру делением на десять - а надо брать остаток от деления на 10
возьмите N = 789
и подумайте, что Вы пытаетесь в g с помощью g = n \ 10


попробуйте так:
Код:
    Do
        g = n Mod 10
        k = k + 1
        If g Mod 3 = 0 Then sum = sum + g
        If g > x Then pr = pr * g
        n = n \ 10
    Loop While n > 0
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.03.2011, 03:12   #3
Trust_357
Пользователь
 
Регистрация: 10.03.2011
Сообщений: 68
По умолчанию

Код:
#include<iostream>
using namespace std;
void main()
{
	setlocale(LC_CTYPE, "Rus");
	int n=0,m=0,s=0,p=1,x=0;//n-число введённое m-от введённого по числу s-сумма кратных 3 p-произведение больших числа X
	short i=0,j=0;//i-колличество цифр
	cout<<"\t\tВведите натуральное число\n\n";
	cin>>n;
	cout<<"\t\tВведите число X\n\n";
	cin>>x;
	for(;n>0;i++)
	{
		m=n%10;
		if(m%3==0)
			s+=m;
		if(m>x)
			j++;
			p=p*m;
		if(n<10)
			break;
		n/=10;
	}
	if(j==0)
		p=0;
	cout<<m<<endl;
	cout<<"\t\tКолличество цифр="<<i<<"\n\n\t\tСумма цифр кратных 3м="<<s<<"\n\n\t\tПроизведение цифр больших Х="<<p<<endl;
}
Trust_357 вне форума Ответить с цитированием
Старый 13.03.2011, 08:52   #4
Джиган
 
Регистрация: 07.02.2011
Сообщений: 7
По умолчанию D

Спасибо большое ребята! Попробую!

Последний раз редактировалось Джиган; 13.03.2011 в 08:54. Причина: Разобрался
Джиган вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поцедура нахождения суммы цифр натурального числа на Паскале rom6520 Помощь студентам 1 21.01.2011 10:32
найти сумму цифр заданного натурального числа dima.m Microsoft Office Excel 6 06.12.2010 11:30
Найти произведение цифр натурального числа, больших В microlab Помощь студентам 6 23.12.2008 20:46
вывод на экран наибольшего делителя натурального числа N, меньше заданного натурального M Fatality Помощь студентам 2 03.12.2008 23:27
Найти количество различных цифр данного натурального числа. stalker Паскаль, Turbo Pascal, PascalABC.NET 10 22.05.2007 17:45