2

ユーザーから 2 つの正の整数 (長い方と短い方) を取得する必要があります。次に、長い整数を (左から右に) ループし、短い整数が長い整数の中にあるかどうかを確認する必要があります。そして、試合の順位と試合数を報告しなければなりません。

*これを行うために文字列とリストを使用することは許可されていません):

# Ask user for positve longer integer number
import math

longInt = int(input("Input a positive longer integer: "))

# Ask user for positive shorter integer number 
shortInt = int(input("Input a positive shorter integer: "))

# Count number of digits in both longer and shorter integer numbers
longLength = int(math.log10(longInt)) + 1
shortLength = int (math.log10(shortInt)) + 1

for offset in range(longLength):
    subInt = longInt // 10 ** offset % 10 ** shortLength
    print(subInt)
    if subInt == shortInt:
        print("Found a match at position ", offset)

だから私が得る結果は次のとおりです。

Input a positive longer integer: 123456
Input a positive shorter integer: 12
56
45
34
23
12
Found a match at position  4
1

long_intしかし、右から左ではなく、左から右にループするようにするにはどうすればよいでしょうか? このような:

Input a positive longer integer: 123456
Input a positive shorter integer: 12

1
12
Found a match at position  1
23
34
45
56

助けてください!ありがとう!

4

1 に答える 1

3

offsetからを減算してlongLength「逆方向」にカウントします。

for offset in range(longLength):
    subInt = longInt // 10**(longLength - offset - 1) % 10**(shortLength)
于 2013-10-02T07:36:55.173 に答える