【洛谷】P1957 口算练习题【C++】
口算練習(xí)題
題目描述
王老師正在教簡(jiǎn)單算術(shù)運(yùn)算。細(xì)心的王老師收集了i道學(xué)生經(jīng)常做錯(cuò)的口算題,并且想整理編寫(xiě)成一份練習(xí)。 編排這些題目是一件繁瑣的事情,為此他想用計(jì)算機(jī)程序來(lái)提高工作效率。王老師希望盡量減少輸入的工作量,比如 5+8\texttt{5+8}5+8 的算式最好只要輸入 5\texttt 55 和 8\texttt 88,輸出的結(jié)果要盡量詳細(xì)以方便后期排版的使用,比如對(duì)于上述輸入進(jìn)行處理后輸出 5+8=13\texttt{5+8=13}5+8=13 以及該算式的總長(zhǎng)度 666。王老師把這個(gè)光榮的任務(wù)交給你,請(qǐng)你幫他編程實(shí)現(xiàn)以上功能。
輸入格式
第一行為數(shù)值 iii
接著的 iii 行為需要輸入的算式,每行可能有三個(gè)數(shù)據(jù)或兩個(gè)數(shù)據(jù)。
若該行為三個(gè)數(shù)據(jù)則第一個(gè)數(shù)據(jù)表示運(yùn)算類(lèi)型,a\texttt aa 表示加法運(yùn)算,b\texttt bb 表示減法運(yùn)算,c\texttt cc 表示乘法運(yùn)算,接著的兩個(gè)數(shù)據(jù)表示參加運(yùn)算的運(yùn)算數(shù)。
若該行為兩個(gè)數(shù)據(jù),則表示本題的運(yùn)算類(lèi)型與上一題的運(yùn)算類(lèi)型相同,而這兩個(gè)數(shù)據(jù)為運(yùn)算數(shù)。
輸出格式
輸出 2×i2\times i2×i 行。對(duì)于每個(gè)輸入的算式,輸出完整的運(yùn)算式及結(jié)果,第二行輸出該運(yùn)算式的總長(zhǎng)度
樣例 #1
樣例輸入 #1
4 a 64 46 275 125 c 11 99 b 46 64樣例輸出 #1
64+46=110 9 275+125=400 11 11*99=1089 10 46-64=-18 9提示
數(shù)據(jù)規(guī)模與約定
對(duì)于 50%50\%50% 的數(shù)據(jù),輸入的算式都有三個(gè)數(shù)據(jù),第一個(gè)算式一定有三個(gè)數(shù)據(jù)。
對(duì)于所有數(shù)據(jù),0<i≤500<i\leq 500<i≤50,運(yùn)算數(shù)為非負(fù)整數(shù)且小于 100001000010000。
#include <bits/stdc++.h> using namespace std; int main(){int n,a,b; char m,s[10001];cin>>n;//n次運(yùn)算while(n--){int f = scanf("%d%d",&a,&b);//scanf()函數(shù)是有返回值的if(!f) scanf("%c%d%d",&m,&a,&b);if(m == 'a'){sprintf(s,"%d+%d=%d",a,b,a+b);//用sprintf()函數(shù)拼接字符串}else if(m == 'b'){sprintf(s,"%d-%d=%d",a,b,a-b);}else if(m == 'c'){sprintf(s,"%d*%d=%d",a,b,a*b);}cout<<s<<endl;cout<<strlen(s)<<endl;}}總結(jié)
以上是生活随笔為你收集整理的【洛谷】P1957 口算练习题【C++】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux32系统下载地址,deepin
- 下一篇: 关于XP的字体