Python--ZOJ1115 and ZOJ1151

本文解析了ZOJ1115题的数字位运算方法及ZOJ1151题的单词逆序算法,提供了源代码示例并讨论了调试过程中遇到的问题。

ZOJ1115 and ZOJ1151

ZOJ1115

1115题意为将一个任意输入的数字的各个位上的数相加,使其最终只有一个个位数字。方法就是不断取余,代码如下:

#2015-02-11
# -*- coding: utf-8 -*-

number = int(input())
while number != 0:
    if number < 10:
        print number
    else:
        while number > 9:
            key = 0
            while number > 9:
                flag = number%10
                number = number/10
                key += flag
            key += number
            (key,number) = (number,key)
        print number
    number = int(input())

ZOJ1151

这题是单词逆序的,虽然题意简单但输入输出要求很繁杂,我无论怎么调试都是Non-zero Exit Code,下面是我最后一次测试的代码,仅供参考啦:

#2015-02-12
# -*- coding: utf-8 -*-
import sys

n = input()
while n>0:
    m = raw_input().strip('\n') #strip()方法去掉输入末尾的换行符
    m = int(m)
    while m>0:
        x = raw_input().strip('\n')
        while len(x)==0:
            x = raw_input().strip('\n')
        line = x.split()
        for i in line:
            s = []
            for j in range(len(i)-1,-1,-1):
                s.append(i[j])
            print ''.join(s), #join()方法,将列表字符转换成字符串
            if i == line[len(line)-1]:
                sys.stdout.softspace=0 
        if m!=0:
            print '\n',
            sys.stdout.softspace=0
        m -= 1
    n -= 1
    if n!=0:
        print '\n',

很悲剧,没有AC,谁有好的方法相互交流一下,T_T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值