Deepak Kumar Choudhary Ответов: 2

Как написать код, чтобы проверить, является ли входное число счастливым числом или нет?


#include<iostream.h>
#include<conio.h>
void happy_no()
{
	int sum=0,num,i,d,c=0;
	cout<<"enter a number: ";	cin>>num;
	for(i=1;i<=10;i++)
	{	
		d=num%10;
		sum+=(d*d);
		num/=10;
		if(sum==1)
		{
			c++;
			break;
		}
		num=sum;
		sum=0;
	}
	if(c==1)
		cout<<"HAPPY NUMBER";
	else
		cout<<"NOT A HAPPY NUMBER";
}
void main()
{clrscr();
happy_no();
getch();
}


Что я уже пробовал:

Число называется счастливым числом, если вы повторяете процесс возведения в квадрат суммы цифр, пока не будет получено значение 1. Но это продолжающееся суммирование и проверка на sum = 1 должны произойти до 10-й итерации.

Более того, когда я набираю этот код в visual studio, он работает, а когда я делаю то же самое в visual studio, он не работает. Это действительно будет много значить, если вы скажете мне об исправлении и причине.

2 Ответов

Рейтинг:
1

Richard MacCutchan

Ваш код не делает того, что описывает ваш вопрос. Правильная последовательность такова:

Input a number
DO
    Split the number into its constituent digits
    Add those digits together to get the sum
    Calculate the square of the sum
    If the answer is equal to 1 break from the loop
    If completed 10 iterations break from the loop
    set number equal to sum
    repeat the process
END


Deepak Kumar Choudhary

@Richard MacCutchan, большое вам спасибо за ваш ответ. Просто чтобы уточнить, сэр, мой вопрос был таков: "Почему я не могу выполнить этот код в Visual Basic, в то время как я могу это сделать на Turbo C.
С нетерпением жду вашего ответа.
Спасибо.

Richard MacCutchan

Ты серьезно?

Рейтинг:
0

Patrice T

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик-Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010-YouTube[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.
-----
Совет:
- Изучите один или несколько методов анализа, У. Е. сверху вниз Djikstra способ это хорошее начало.
https://en.wikipedia.org/wiki/Top-down_and_bottom-up_design[^]
https://en.wikipedia.org/wiki/Structured_programming[^]
https://en.wikipedia.org/wiki/Edsger_W._Dijkstra[^]
https://www.cs.utexas.edu/users/EWD/ewd03xx/EWD316.PDF[^]