Problem statement
A dishonest shopkeeper uses a false weight of 900gm instead of 1kg, if he promises to sell his goods at cost price, what is his overall profit?
I approached this problem like this,
when a customer buys 1 kg, he gets 0.9 kg.(profit of 0.1kg for shopkeeper)
when a customer buys 2 kg, he gets 1.8 kg.(profit of 0.2kg for shopkeeper)
So, if the shopkeeper has x kg originally, he will be able to sell (10x/9)kg.
It gives me the correct answer but I still can't visualize this.
For e.g. Let's say the shopkeeper has 9 kg originally, and sells all of it, in this case he will sell 8.1 kg(there is 900gm left). So, in total he will sell, 9.9kg(9kg+900gm leftover). The earlier equation gives 10kg.
What is wrong with reasoning?
It's really a wording problem, as you state in the title, here's why:
"when a customer buys 1 kg, he gets 0.9 kg"
and
"when a customer buys 2 kg, he gets 1.8 kg"
are both from the customer's point of view. And your next statement
"So, if the shopkeeper has x kg originally, he will be able to sell (10x/9)kg."
is from the shopkeeper's point of view. From the numbers & the formula we can see, that x, the smaller amount, is the "he gets" from the customer's point of view - which means whatever the customer gets is the amount the shopkeeper has originally, and 10x/9, the bigger amount, is "buys" from the customer's point of view - which has a word equivalent "sell" from the shopkeeper's point of view.
Visalizing these:
\begin{array}{c|c|c|c} \text{Math notation} & \text{Relative amount} & \text{Customer} & \text{Shopkeeper} \\\hline x & \text{smaller} & \text{he gets} & \text{has originally} \\\hline 10x/9 & \text{bigger} & \text{buys} & \text{sell} \\\hline \end{array} In your last example, you use different logic when you say
"the shopkeeper has 9 kg originally, and sells all of it, in this case he will sell 8.1 kg"
because here the word "sell" is present two times and refers to two different amounts, and you used the bigger one for x, however the above table shows that the smaller should be used, and then the result is 9 not 10.
Additionally, you introduced two (or one and a half) new words, "left" and "leftover", which were "profit" in the two original examples, and this amount is not sold so it shouldn't be added.