📅  最后修改于: 2023-12-03 14:39:39.445000             🧑  作者: Mango
如果两个数字的数字组合一致(其数字可以重新排列形成另一个数字),则这两个数字是相互位旋转的。例如,123和231是相互位旋转的。
本文将介绍如何使用C++编写一个简单的程序来检查两个数字是否相互位旋转。我们将通过以下三个步骤来实现此目标:
以下是完整的C++程序(其中函数isRotation
接受两个整数作为参数并返回true
如果它们是相互位旋转的,否则返回false
):
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
bool isRotation(int num1, int num2)
{
string str1 = to_string(num1);
string str2 = to_string(num2);
sort(str1.begin(), str1.end());
sort(str2.begin(), str2.end());
return str1 == str2;
}
int main()
{
int a = 123;
int b = 231;
if (isRotation(a, b))
cout << a << " and " << b << " are rotations of each other.\n";
else
cout << a << " and " << b << " are not rotations of each other.\n";
return 0;
}
该程序首先将两个整数转换为字符串形式,然后对这两个字符串进行排序。最后,它比较两个字符串是否相等。如果两个字符串相等,则这两个数字是相互位旋转的。
我们可以使用C++标准库提供的to_string
函数将整数转换为字符串。sort
函数可以对任何可迭代的序列进行排序,包括字符串。
在main
函数中,我们定义两个整数a
和b
,并将它们传递给isRotation
函数进行比较。isRotation
函数返回true
如果这两个数字是相互位旋转的,否则返回false
。如果它们是相互位旋转的,我们将输出一条消息,否则将输出另一条消息。