1. 程式人生 > >逐段輸出多項式的計算結果

逐段輸出多項式的計算結果

      給定一個簡單的四則運算的多項式,如果把多項式看作一個字串,試編寫程式,自左向右依次輸出每個子字串所對應的多項式的計算結果。例如給定多項式為:1+23*2+3*3,程式輸出結果為:1 3 24 47 50 56

key_list = [str(i) for i in range(1, 10)]

def func(str_in):
    if len(str_in) == 0:
        print 'Input Error 111!'
    result = 0
    result_f = 0
    pos = 0
    oper = 0
    num_f = 0
    num_list = []
    oper_list = []
    print str_in
    while pos < len(str_in):
        if pos == 0 and str_in[pos] in key_list:
            num = int(str_in[pos])
            num_list.append(num)
            #print num_list
            result = num_list[0]
            result_f = 0
            print result
        elif pos < len(str_in) and str_in[pos] in key_list:
            num = int(str_in[pos])
            if num_f == 0:
                num_f = num
                num_list.append(num_f)
            else:
                num_f = num_f*10 + num
                num_list[-1] = num_f
                #print num_list
                #print oper_list
            if oper_list[-1] == 1:
                result = result_f + num_list[-1]
            else:
                result = result_f + num_list[-2] * num_list[-1]
            print result
        elif pos < len(str_in) and str_in[pos] == '+':
            oper = 1
            num_f = 0
            result_f = result
            oper_list.append(oper)
        elif pos < len(str_in) and str_in[pos] == '*':
            oper = 2
            num_f = 0
            oper_list.append(oper)
        else:
            pass
        pos += 1


str_in = '1+23*2+3*3'
func(str_in)


相關推薦

輸出多項式計算結果

      給定一個簡單的四則運算的多項式,如果把多項式看作一個字串,試編寫程式,自左向右依次輸出每個子字串所對應的多項式的計算結果。例如給定多項式為:1+23*2+3*3,程式輸出結果為:1 3 2

輸入一個字串表示式,輸出計算結果

輸入一個字串,裡面包含 + - × 和0——9,保證每個輸入的字串都可以輸出結果,計算字串的值 例如,輸入 1+2×3-4,輸出 3 #include <iostream> using

編寫一個在1,2,…,9(順序不能變)數字之間插入+或-或什麼都不插入,使得計算結果總是100的程式,並輸出所有的可能性。

public class Test5{ public static void main(String[] args){ /* 編寫一個在1,2,…,9(順序不能變)數字之間插入+或-或什麼都不插入, 使得計算結果總是100的程式,並輸出所有的可能性。 例如:1 + 2 + 3

程式設計求指定半徑r的圓的面值和周長,並輸出計算結果

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _2._3._1 {     class Program     {      

用java編寫在1,2,…,9(順序不能變)數字之間插入+或-或什麼都不插入,使得計算結果總是100的程式,並輸出所有的可能性。例如:1 + 2 + 34 – 5 + 67 – 8 + 9 = 100

今天看到一個題目,編寫一個在1,2,…,9(順序不能變)數字之間插入+或-或什麼都不插入,使得計算結果總是100的程式,並輸出所有的可能性。例如:1 + 2 + 34 – 5 + 67 – 8 + 9 = 100。 剛開始看到題目的時候一籌莫展,但是題目下一條

輸入一個字串表示式,輸出計算結果(佇列、棧的應用)

#include <iostream> #include <queue> #include <stack> #include <string> using namespace std; string input; queue&

html5 表單 填表 select 下拉 textarea多行文本 output Js計算結果

size area 如果 out ctrl select png 多行文本 賦值 <select> 下拉 <select>下有很多屬性 name 其實有name就有value了,因為button提交的都是? nam

【Windows 10 應用開發】使用x:Bind標記動態獲得計算結果

ash 進行 reg tps 屬性綁定 使用 例子 應用 處理 UWP 在傳統(WPF)的Binding標記上引入了 Bind 標記,Bind 基於編譯階段生成,因而具有較高的性能。但是,你得註意,這個性能上的優化是免去了運行階段動態綁定的開銷,這是不包括數據源的體積的。要

【.net 深呼吸】實時獲取計算結果

urn 找到 method 值傳遞 派生類 change windows 初學 推出 上次老周介紹了在 UWP 應用中通過 x:Bind 標記來綁定到方法,以實現實時獲取計算結果。今天,咱們來耍耍WPF上面的實現方法。 雖然,WPF 沒有 x:Bind 標記(暫時沒有,以

卷積網絡輸出尺寸計算

卷積 步長 圖片 網絡 lock 素數 是我 大小 我們 先定義幾個參數 輸入圖片大小 W×W Filter大小 F×F 步長 S padding的像素數 P 於是我們可以得出 N = (W ? F + 2P )/S+1 卷積網絡輸出尺寸計算

[吃藥深度學習隨筆] 前向傳播:即如何在圖中輸入數據向前推進從而得到計算結果

矩陣 ted .com one 數據 UNC cat clas HA w = tf.Variable(tf.random_normal([2,3], stddev=2,mean=0, seed=1)) 其中 tf.random_normal是正太分布   除了這個

給定一個公式字符串用java進行拆解並計算結果

eal rgs del 返回結果 array res new 小數點 color 需求很簡單,給定一個字符串形式的公式規則,用java代碼進行拆解,並能計算出結果。 ?考慮字符串中數字格式【整數、小數點】 ?考慮字符串中運算符【+-*/()】 ?考慮空格、運算規則【被0除】

分成BL1BL2後為什麼printf不能輸出變數的結果,可以輸出字串?

在學習嵌入式程式時,編寫一個倒計數自啟動命令的過程中,使用了wdt定時器中斷isr_wdt,由於原來編寫的程式bin大於16KB,故分成了BL1和BL2兩部分程式碼,IRQ_handle:部分的程式碼放在了BL2的start.S的尾部。程式碼如下: #define WTCON &nbs

資料結構實現順序表和多項式計算

就是簡單的,資料結構實現順序表和多項式計算 1.順序表程式碼 #include<stdlib.h> #include<stdio.h> #define ERROR 0; #define OK 1; typedef int ElemType; typedef s

計算結果總是100的程式

編寫一個在1,2,…,9(順序不能變)數字之間插入+或-或什麼都不插入,使得計算結果總是100的程式,並輸出所有的可能性。例如:1 + 2 + 34 – 5 + 67 – 8 + 9 = 100。 執行環境: python 3.4.3 執行命令: python3 test.py 執

【11.9校內測試】【倒計時1天】【ak歡樂賽】【多項式計算模擬】

然而AK失敗了,就是因為這道摸你題:(最後一篇題解了吧?QAQ) Solution 模擬多項式乘法,其中的運算處理很像高精度,不過第$i$位代表的就是$x^i$前面的係數了。 好像去年的時候就講了表示式的計算(又開始玻璃心了QAQ),開雙棧,一個棧表示數字,一個棧表示運算子。然後碰到右括號或者運

mysql 下 計算 兩點 經緯度 之間的距離 計算結果排序

就是 大致 整數 最大值 資源 order 技術 得到 padding 根據經緯度計算距離公式 公式 對上面的公式解釋如下: Lung1 Lat1表示A點經緯度, Lung2 Lat2表示B點經緯度; a=Lat1 – Lat2 為兩

連結串列實現學生資訊表(含輸入、輸出計算表長、查詢、插入、刪除等功能)

連結串列實現學生資訊表(含輸入、輸出、計算表長、查詢、插入、刪除等功能) #include <stdio.h> #include <stdlib.h> void menu() { printf("make your choice \n"); pr

建立一棵用二叉樹連結串列方式儲存的二叉樹,並對其進行遍歷(先序,中序和後序),列印輸出遍歷結果

題目如下 程式碼如下 #include<stdio.h> #include<stdlib.h> #include<malloc.h> typedef struct Node//結構體 {

常見演算法-多項式計算 1

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!