zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    linux 中断映射
    undefined reference to `__stack_chk_guard'
    riscv_clocksource
    source insight
    Illegal instruction mret mret指令返回异常
    Linux内核内存分配函数之devm_kmalloc和devm_kzalloc
    设备树 compatible 属性
    miniriscvos 05Preemptive
    enter_supervisor_mode
    Store/AMO access fault
  • 原文地址:https://www.cnblogs.com/Esquecer/p/8459773.html
Copyright © 2011-2022 走看看