20240319每日一题题解
Problem
判断一个数的结构是否为某个数重复两遍得到。
例如,\(123123\)是重复两遍的数,而\(333\),\(809680\)则不是
保证输入的数字不超过long long
型范围。
若是,则输出yes
;否则输出no
。
Solution
从数字的角度要想解决这个问题也不是不可以,但是不如将给定的数字转换为字符串。考虑计算这个数字的总位数(即字符串长度),然后对半分割。之后判断分割的两部分是否相同即可。
Code
#include<iostream>
using namespace std;
int main()
{
string str;
cin>>str;
if(str.size()%2==1)
{
cout<<"no"<<endl;
}
else
{
if(str.substr(0,str.size()/2)==str.substr(str.size()/2))
{
cout<<"yes"<<endl;
}
else
{
cout<<"no"<<endl;
}
}
return 0;
}
标签:数字,题解,每日,20240319,long,str
From: https://www.cnblogs.com/Vanilla-chan/p/18083977