夏洛克与野兽 C
sherlock and the beast in C
我在解决这个问题时遇到问题 https://www.hackerrank.com/challenges/sherlock-and-the-beast/ 并且只能解决 15 个测试用例中的 14 个。我剩下测试用例 #14,如果有人可以帮助我。
这是我的代码:
int main()
{
int t,i,j,val1=0,val2=0,a0,k,z,five=0,three=0,rem=0,div=0;
int a=5,b=3;
scanf("%d",&t);
for(int a0 = 0; a0 < t; a0++){
int n;
scanf("%d",&n);
rem=n%3;
div=n/3;
if(n>2)
{
if(n==4)
{printf("-1\n");}
if(rem==2){
three=1;
five=div-1;
}
else if(rem==1){
three=2;
five=div-3;
}
else if(rem==0)
{
three=0;
five=div;
}
for(k=0;k<five;k++){printf("555");}
for(z=0;z<three;z++){printf("33333");}
}
else {printf("-1");}
printf("\n");
}
return 0;
}
测试用例:
10
1个
2个
3个
4个
5个
6个
7
8个
9
10
预期输出:
-1
-1
555
-1
33333
555555
-1
55533333
555555555
3333333333
您走在正确的轨道上,但需要做更多的概括。而不是使用"n",需要引入一个flag。
for(int a0 = 0; a0 < t; a0++)
{ FLAG=1;
int n;
scanf("%d",&n);
rem=n%3;
div=n/3;
if(rem==2)
{
if(div<1)
FLAG=0;
five=div-1;
three=1;
}
else if(rem==1)
{
if(div<3)
FLAG=0;
five=div-3;
three=2;
}
else if(rem==0)
{
three=0;
five=div;
}
if(FLAG==1)
{
for(k=0;k<five;k++){printf("555");}
for(z=0;z<three;z++){printf("33333");}
}
if(FLAG==0)
{printf("-1");}
printf("\n");
}
return 0;
}
希望这会有所帮助!
我在解决这个问题时遇到问题 https://www.hackerrank.com/challenges/sherlock-and-the-beast/ 并且只能解决 15 个测试用例中的 14 个。我剩下测试用例 #14,如果有人可以帮助我。
这是我的代码:
int main()
{
int t,i,j,val1=0,val2=0,a0,k,z,five=0,three=0,rem=0,div=0;
int a=5,b=3;
scanf("%d",&t);
for(int a0 = 0; a0 < t; a0++){
int n;
scanf("%d",&n);
rem=n%3;
div=n/3;
if(n>2)
{
if(n==4)
{printf("-1\n");}
if(rem==2){
three=1;
five=div-1;
}
else if(rem==1){
three=2;
five=div-3;
}
else if(rem==0)
{
three=0;
five=div;
}
for(k=0;k<five;k++){printf("555");}
for(z=0;z<three;z++){printf("33333");}
}
else {printf("-1");}
printf("\n");
}
return 0;
}
测试用例: 10 1个 2个 3个 4个 5个 6个 7 8个 9 10
预期输出:
-1
-1
555
-1
33333
555555
-1
55533333
555555555
3333333333
您走在正确的轨道上,但需要做更多的概括。而不是使用"n",需要引入一个flag。
for(int a0 = 0; a0 < t; a0++)
{ FLAG=1;
int n;
scanf("%d",&n);
rem=n%3;
div=n/3;
if(rem==2)
{
if(div<1)
FLAG=0;
five=div-1;
three=1;
}
else if(rem==1)
{
if(div<3)
FLAG=0;
five=div-3;
three=2;
}
else if(rem==0)
{
three=0;
five=div;
}
if(FLAG==1)
{
for(k=0;k<five;k++){printf("555");}
for(z=0;z<three;z++){printf("33333");}
}
if(FLAG==0)
{printf("-1");}
printf("\n");
}
return 0;
}
希望这会有所帮助!