数値を並べ替えることで簡単な数学的ジャグリングを行うスクリプトを作成しました。この計算では、Python "magic"を解決してください。
x = 777.0
y = 5
calc = x/y # 155.4
を... 擬似コード:
Rearrange numbers (last digit + first) = 555.
Difference from 777 and 555 = 222
Add 222 to 555 = 777
基本的に、それは本当の計算を行うことなく、元の変数を再作成する必要がありますが、代わりに数字だけを再配置し、追加し、それが何をすべき
。
私はそれが333.3のような4桁の数字でのみ動作することを期待していました。少なくとも私の(非学問的な)見解からは不可能であるように見える2543.6452のような数字でも働くようです。 誰かがここで何が起こるか教えてもらえますか?コードが正しく動作しているのか、私は何かを作成してしまったのですか?私には錯覚のように見えます。 :D
x = 5.0
y = 7345.3297
z= y/x
print "Initial Value = " + str(y)
print "Calculate:"
print str(y) + "/" + str(x)
print z # 177.6
print
a = int(str(z)[0])
print "First Number = " + str(a)
print
b = int(str(z)[1])
c = int(str(z)[2])
print "In between = " + str(b) + str(c)
d = int(str(z)[-1]) # treat z as string, take first string after . from z and format it back to int
print "Last Number = " + str(d)
print
print "Rearrange Numbers"
res = str(a+d) +str(b) +str(c)
to_int = int(res)
dif = y - to_int
add = to_int + dif
print "number = " + str(add)
コードはあなたがしたいことを正確に実行しています。それはやっている? – DavidG
本当にありません。それはあまりにもよく、あまりにも良いことです。 :D たとえば、23135.34674という数値をとり、計算を実行すると、23135.34674とは非常に異なる結果になるはずです。 コードは666.666や888.8のような "対称"の値でしか使えないと思っています。少なくとも私のコードは変数yをとり、結果として出力します。 :D "in_between"の値は、2番目と3番目の数字だけを考慮に入れます。大きな数字で正しい結果を得ることは不可能です。 – Horst23