TOJ3448: 小学生的作业

Python字符串的插入操作

传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=3448

时间限制(普通/Java):1000MS/3000MS     内存限制:65536KByte

描述

给定用等号连接的两个整数,如“1234=127”。

问能否在左边的整数中间某个位置插入一个加号使得等号成立。比如:

123+4=127

请你编写一个程序实现。

输入

输入占一行,即用等号连接的两个整数

已知,等号两边的整数都不会超过2000000000。

输出 

如果存在这样的方案,请输出那个正确的式子。不含任何空格字符。

否则输出:

Impossible!

数据保证最多只有一种方案。

样例输入

1234=127

样例输出

123+4=127

 

思路:这题如果用C写,循环遍历过去分割字符串,然后字符串转整数相加一下,遍历过去就行了。

然而,这题拿来是练习一下Python的插入字符串的操作的。因为Python中str没有insert函数,所以只能自己写啦

def insert(original, new, pos):
'''Inserts new inside original at pos.'''
return original[:pos] + new + original[pos:]

引自:http://twigstechtips.blogspot.com/2010/02/python-insert-string-into-another.html

大概就是上面这样!

然后再用eval函数把加上加号的字符串转成值判断一下就好了!最后注意如果遍历完了还没有,就得输出“Impossible!”

代码:

while True:
   try:
      n,m = input().split("=")
      flag = 0
      for i in range(1,len(n)):
            k = n[:i] + '+' + n[i:]
            if(int(eval(k)) == int(m)):
                print("%s=%s"%(k,m))
                flag = 1
      if flag == 0:
        print("Impossible!")
   except EOFError:
       break

转载于:https://www.cnblogs.com/Esquecer/p/8459773.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值