 # Formatted Numbers

Click on the uDebug button on top of the problem statement to get correct output for any input value.

1 Like

@Quark.1 Your code fails for a corner case (literally). Pay close attention to the range of A as mentioned in the input specification.

That’s unfortunate. If that is what you are going to focus on then it is going to be hard for you to find the actual issue and solve problems. Your code doesn’t work for input 0.

1 Like

I can’t find what is the problem with my code. It is producing incorrect output for test case 2
Here is the code:
a = input()
b = len(a)
c = b // 3
d = b % 3
if d > 0 and b > 3:
print(a[:d], end=",")
for i in range(c - 1):
print(a[(b // c) * i + d:(b // c) * (i + 1) + d], end=",")
print(a[-3:])
elif b < 4:
print(a)
else:
for i in range(c - 1):
print(a[(b // c) * i:(b // c) * (i + 1)], end=",")
print(a[-3:])

Sorry becuz my code doesn’t have better readability

Press the key above the tab button 3 time to produce this character(s), `````.
This character is called Grave Accent.
Then write language code (cpp, c, python, rb, java, bash etc.)
Write your code.
Then type three grave accents `````again like this,

`````````python
print("something")
```
``````

and the result will be like this,

``````print("something")
``````

Try to edit your code(s) with this now. Formatted codes are easier to be read then unformatted ones. They also looks cool.

``````a = input()
b = len(a)
c = b // 3
d = b % 3
if d > 0 and b > 3:
print(a[:d], end=",")
for i in range(c - 1):
print(a[(b // c) * i + d:(b // c) * (i + 1) + d], end=",")
print(a[-3:])
elif b < 4:
print(a)
else:
for i in range(c - 1):
print(a[(b // c) * i:(b // c) * (i + 1)], end=",")
print(a[-3:])
``````

Sorry I gave wrong indentation in print statement.

Now, please correctly format it;
for example:

``````if d > 0 and b > 3:
print(a[:d], end=",")
``````

should be,

``````if d > 0 and b > 3:
print(a[:d], end=",")
``````

code:

`````````
if d > 0 and b > 3:
print(a[:d], end=",")
```
``````

and this also.

And you don’t need to create new posts. Just edit previous ones.

Bro I reformated it. So plz help now

Showing wrong ans in 4th no. test case.Plz help
#include <stdio.h>
int main()
{
long long int A;
scanf("%lld",&A);
int r,i=0,a,j;
while(A!=0)
{
r=A%1000;
a[i++]=r;
A/=1000;
}
for(j=i-1;j>=0;j–)
{

``````while(a[j]!=a)
{
printf("%lld,",a[j]);
a[j--];
}
if(a[j]==a)
printf("%lld",a);
``````

}

return 0;
}

Yes, Sorry. But I was Just teaching you code formatting. Cause I couldn’t understand your code.

However, here is the reason of your code being rejected. For big numbers such as this,

``````2389346234712562489
``````

the output becomes something like this,

``````2,389,489
346,489
234,489
712,489
562,489
``````

Its seems like your code is printing the last part over and over cause you have put it inside the loop.
Just bring it outside of the loop just like this and your code should be accepted.

``````for i in range(c - 1):
print(a[(b // c) * i + d:(b // c) * (i + 1) + d], end=",")
print(a[-3:]) #bring this line out of the loop
``````

and after fixing it, see this also,

``````1
12
123
1,234
12,345
123,456
1,234,567
12,3456,678 // what ?
123,456,789
1,234,567,890
``````

And it seems your code is giving WA for inputs lenght 9. find out the reason and fox it also.

And again, you have not edited this post yet. please do so.

Please format and edit your code using this method.

Dear elders ,what is the problem in my code?
#include<stdio.h>
#define M(K3,N) (K3=N%1000)
#define L(K2,N) (K2=N%1000)
#define O(K1,N) (K1=N%1000000)
int main()
{
int N,K1,K2,K3,M,O;
scanf("%d",&N);
if(N < 200000000){
M(K3,N);
N=N/1000;
L(K2,N);
N=N/1000;
O(K1,N);

``````    printf("%d,%d,%d",K1,K2,K3);
}
``````

}

Please format your code properly before posting on Toph. You can use this as a reference.

And the output of your code should be like this. That is the problem.

I think toph authority should give the opportunity to see the test cases, like codeforces.
In codeforces we can see the test case where we get wrong answer.

Well, its because there is deference how both sites introduce themselves.

cf is basically known as a platform where contest programmers can prove themselves when Toph declares themselves as a sports programming platform. cf has to keep holding contests constantly because of how they are known and thus test cases after contests don’t hold that importance to them. Thus, showing test cases after a contest becomes a feature.

However in case of Toph, the sponsored contests they hold to run the site, in case of most of them being held onsite and many of them being a process of some kind of selection, it is important to hide test cases to avoid conflicts regarding a contest after its ending.

That’s the reason if your concern is about contests.

However in case of the problems that you can solve any time from problems library, the practice of revealing the test cases in even more scarce. If test cases are revealed, people might find leeways for a problem that they should not find and thus the online judges do not usually reveal their test cases. Your solution should be enough for tacking any kind of situations stated in the problem statements and inside the given constraints and thus the revelation of the test cases are thought to bis considered unnecessary.

by the way that is what I think about this matter. What is your official opinion @hjr265.
[dark side of touhid: hehe, let’s involve a moderator in this conversation.]

Where is my error?!

public static void main(String[]args){
Scanner input=new Scanner(System.in);
int A=input.nextInt();
if(A>=0 && A<200000000){
if(A<1000){
System.out.println(A);
}
int A1=0;
int At=0;
int A2=0;
int At2=0;
if(A>=1000 && A<1000000){
A1=A%1000;
At=A/1000;
System.out.println(At+","+A1);
}
if(A>=1000000){
A1=A%1000;
At=A/1000;
A2=At%1000;
At2=At/1000;
System.out.println(At2+","+A2+","+A1);
}
}
}
}

My code is giving desired answer. But judge is saying it wrong. why?
S = input()
n = len(S)+1
li = list()
for i in range(-1, -n, -1):
if i in [-4,-7,-10]:
li.append(",")
li.append(S[i])
li.reverse()
print()
print("".join(li))

``````#include<stdio.h>
int main()
{
int A,b,c,d;
scanf("%d",&A);
if(0 <= A < 200000000) {
b=A%1000;
b=A%1000;
A=A/1000;
c=A%1000;
A=A/1000;
d=A%1000;
printf("%d,%d,%d",d,c,b);
}
return 0;
}
``````

tell me the problem of my code, prblm: wrong result

``````  Scanner input=new Scanner(System.in);
int A,b,c,d;
A=input.nextInt();
if(A < 200000000) {
b=A%1000;
A=A/1000;
c=A%1000;
A=A/1000;
d=A%1000;
if(c==0){
System.out.println(b);
}
else if(d==0){
System.out.println(c+","+b);
}else{
System.out.println(d+","+c+","+b);
}

}
``````

please tell me the problem in this code , judges give me wrong ans