要求最后的数的每一位相加%233==0,及为233的倍数,给你x,让你求k;
解: 给你x,比如说23,那么可以让结果为233个23,给你15,可以让结果为233个15相连,那么个各个位数加起来一定为233的倍数,如何让一个数乘以x等于233个x呢,其实是有规律的,233个1乘以<10的数 ,232个10加一个1乘以两位数,232个100加1乘以三位数......都会得到这样的结果,并且不会超过两千位,因为x为最高7位数,7*232<2000,直接用字符串连接就行了.
#include <iostream>
#include <string.h>
#include <string>
using namespace std;
int qiu(int x)
{
int count=0;
while (x)
{
x/=10;
count++;
}
return count;
}
int main()
{
int x,t;
cin>>t;
while(t--)
{
string st="1";
string st1="";
cin>>x;
int num=qiu(x);
if (num==1)
{
string st2="1";
for (int i=1;i<=232;i++)
st1+=st2;
st1+=st;
}
else if (num==2)
{
string st2="10";
for (int i=1;i<=232;i++)
st1+=st2;
st1+=st;
}
else if (num==3)
{
string st2="100";
for (int i=1;i<=232;i++)
st1+=st2;
st1+=st;
}
else if (num==4)
{
string st2="1000";
for (int i=1;i<=232;i++)
st1+=st2;
st1+=st;
}
else if (num==5)
{
string st2="10000";
for (int i=1;i<=232;i++)
st1+=st2;
st1+=st;
}
else if (num==6)
{
string st2="100000";
for (int i=1;i<=232;i++)
st1+=st2;
st1+=st;
}
else if (num==7)
{
string st2="1000000";
for (int i=1;i<=232;i++)
st1+=st2;
st1+=st1;
}
cout<<st1<<endl;
}
return 0;
}