在 C 编程中设置循环限制和计算回文
Setting a Limit on loops and calculating palindromes in C programming
所以这段代码的目标是将一个用户号转换成一个回文。如果数字不是回文,则计算数字+反转数字,直到成为回文。如果仍然不是回文,取最后一个数字的和,它的倒数相加,最多尝试10次。
int main()
{
int n;
int reverse = 0; //initial value will be 0
int temp; //temporary variable
//Check if number is a palindrome===============================
printf("Enter an integer: ");
scanf_s("%d", &n);
temp = n; //Make input number have a temporary variable
while (temp != 0)
{
reverse = reverse * 10;
reverse = reverse + temp % 10;
temp = temp / 10;
}
//Check if number entered by user and it's reverse number is equal
if (reverse == n)
printf("%d\t1, reverse is %d\n", n, reverse); //Is a palindrome
else
printf("%d\t0, reverse is %d\n", n, reverse); //Not a palindrome
//==========================================================================
//Keep adding numbers until it reaches a palindrome
int sum;
while (n /= reverse)
{
sum = n + reverse;
n++;
}
if (reverse == sum)
printf("%d it works", sum, reverse);
else
("%d didn't work", sum, reverse);
我还没有达到极限。但我的问题是我将如何去添加反向和用户的号码,然后做总和 + 它的反向?还有这种问题最好用什么样的循环?
你可以做的是在另一个 while 循环(考虑为循环 1)中编写 while 循环以生成数字的反转(考虑为循环 2),当数字为 palindrome.If 给定的数字不是回文,然后您将数字更改为 number=number+reverse.If 您想要尝试 10 次尝试,然后您可以通过计数器为循环 1 添加另一个条件。下面是我写的代码。
#include<stdio.h>
int main()
{
int n;
int count=0; //taking counter for number of trials
int reverse=0; //initial value will be 0
int temp; //temporary variable
printf("Enter an integer: ");
scanf("%d", &n);
while (count<10)
//count less than 10 condition makes the max. no. of trials equal to 10
{
temp=n; //assigning a temporary variable to n
reverse=0;
//Finding the reverse of the number n===============================
while (temp != 0)
{
reverse = reverse * 10;
reverse = reverse + temp % 10;
temp = temp / 10;
}
//Check if number entered by user and it's reverse number is equal
if (reverse == n){
printf("\n%d\t1, reverse is %d\n", n, reverse);
//Is a palindrome
break;
/*break condition makes the loop 1 to terminate if the number 'n' is palindrome*/
}
else
printf("\n%d\t0, reverse is %d\n", n, reverse);
//Not a palindrome
//================================================================
//Keep adding numbers until it reaches a palindrome
n=n+ reverse;
count++;
}
}
所以这段代码的目标是将一个用户号转换成一个回文。如果数字不是回文,则计算数字+反转数字,直到成为回文。如果仍然不是回文,取最后一个数字的和,它的倒数相加,最多尝试10次。
int main()
{
int n;
int reverse = 0; //initial value will be 0
int temp; //temporary variable
//Check if number is a palindrome===============================
printf("Enter an integer: ");
scanf_s("%d", &n);
temp = n; //Make input number have a temporary variable
while (temp != 0)
{
reverse = reverse * 10;
reverse = reverse + temp % 10;
temp = temp / 10;
}
//Check if number entered by user and it's reverse number is equal
if (reverse == n)
printf("%d\t1, reverse is %d\n", n, reverse); //Is a palindrome
else
printf("%d\t0, reverse is %d\n", n, reverse); //Not a palindrome
//==========================================================================
//Keep adding numbers until it reaches a palindrome
int sum;
while (n /= reverse)
{
sum = n + reverse;
n++;
}
if (reverse == sum)
printf("%d it works", sum, reverse);
else
("%d didn't work", sum, reverse);
我还没有达到极限。但我的问题是我将如何去添加反向和用户的号码,然后做总和 + 它的反向?还有这种问题最好用什么样的循环?
你可以做的是在另一个 while 循环(考虑为循环 1)中编写 while 循环以生成数字的反转(考虑为循环 2),当数字为 palindrome.If 给定的数字不是回文,然后您将数字更改为 number=number+reverse.If 您想要尝试 10 次尝试,然后您可以通过计数器为循环 1 添加另一个条件。下面是我写的代码。
#include<stdio.h>
int main()
{
int n;
int count=0; //taking counter for number of trials
int reverse=0; //initial value will be 0
int temp; //temporary variable
printf("Enter an integer: ");
scanf("%d", &n);
while (count<10)
//count less than 10 condition makes the max. no. of trials equal to 10
{
temp=n; //assigning a temporary variable to n
reverse=0;
//Finding the reverse of the number n===============================
while (temp != 0)
{
reverse = reverse * 10;
reverse = reverse + temp % 10;
temp = temp / 10;
}
//Check if number entered by user and it's reverse number is equal
if (reverse == n){
printf("\n%d\t1, reverse is %d\n", n, reverse);
//Is a palindrome
break;
/*break condition makes the loop 1 to terminate if the number 'n' is palindrome*/
}
else
printf("\n%d\t0, reverse is %d\n", n, reverse);
//Not a palindrome
//================================================================
//Keep adding numbers until it reaches a palindrome
n=n+ reverse;
count++;
}
}