HDU1753: 大明A+B

大明A+B

Time Limit: 3000/1000 MS (Java/Others)????Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5533????Accepted Submission(s): 1870

Problem Description
話說,經過了漫長的一個多月,小明已經成長了許多,所以他改了一個名字叫“大明”。 這時他已經不是那個只會做100以內加法的那個“小明”了,現在他甚至會任意長度的正小數的加法。
現在,給你兩個正的小數A和B,你的任務是代表大明計算出A+B的值。
Input
本題目包含多組測試數據,請處理到文件結束。 每一組測試數據在一行里面包含兩個長度不大于400的正小數A和B。
Output
請在一行里面輸出輸出A+B的值,請輸出最簡形式。詳細要求請見Sample Output。
Sample Input
1.1 2.9 1.1111111111 2.3444323343 1 1.1
Sample Output
4 3.4555434454 2.1
  1 /*
  2 帶小數點的大數加法
  3 思路清晰簡單,幾分鐘就想清楚
  4 但敲代碼1個多小時,改錯又是1個半小時 汗……
  5 要提高敲鍵盤的速度以及正確率啊,還有就是敲之前一定要想清楚
  6 */
  7 
  8 #include <iostream>
  9 #include <string.h>
 10 #include <stdio.h>
 11 #include <math.h>
 12 using namespace std;
 13 const int MAX=1000;
 14 char que[3][MAX];  //存入初始字符串
 15 int data[3][MAX];  //存入字符串轉換過來的數據
 16 int answer[MAX];  //最后的答案
 17 int main()
 18 {
 19     int len[3];  //兩字符串長度
 20     int dian[3]; //字符串轉換成實數后小數點的位置
 21     while(scanf("%s%s",que[1],que[2])!=EOF)
 22     {
 23         memset(data,0,sizeof(data));
 24         memset(answer,0,sizeof(answer));
 25         len[1]=strlen(que[1])-1;
 26         len[2]=strlen(que[2])-1;
 27         //printf("len    %d  %d\n",len[1],len[2]);
 28          //printf("%s    %s\n",que[1],que[2]);
 29         dian[1]=-1;
 30         dian[2]=-1;
 31 
 32         //for循環將字符串轉換成實數,并找出小數點的位置
 33         for(int i=1;i<3;i++)
 34             for(int j=len[i];j>=0;j--)
 35             {
 36                 if(que[i][j]=='.')
 37                    dian[i]=len[i]-j;
 38                 else
 39                    data[i][len[i]-j]=que[i][j]-'0';
 40             }
 41         /*
 42         檢驗數據的轉換是否完成以及小數點的位置
 43         for(int i=0;i<=len[1];i++)
 44           printf("%d   ",data[1][i]);
 45           printf("\n");
 46         for(int i=0;i<=len[2];i++)
 47           printf("%d   ",data[2][i]);
 48           printf("\n");
 49         printf("%d   %d\n",dian[1],dian[2]);
 50         */
 51 
 52         //將兩個實數的小數點對齊
 53         int sub;
 54         if(dian[1]>dian[2])
 55         {
 56             sub=dian[1]-dian[2];
 57             for(int j=len[2]+sub;j>=0;j--)
 58             {
 59                 if(j>=sub)
 60                     data[2][j]=data[2][j-sub];
 61                 else
 62                     data[2][j]=0;
 63                 dian[2]=dian[1];
 64             }
 65         }
 66         if(dian[2]>dian[1])
 67         {
 68             sub=dian[2]-dian[1];
 69             for(int j=len[1]+sub;j>=0;j--)
 70             {
 71                 if(j>=sub)
 72                     data[1][j]=data[1][j-sub];
 73                 else
 74                     data[1][j]=0;
 75                 dian[1]=dian[2];
 76             }
 77         }
 78 
 79         /*
 80         //小數點轉換完成后的實數數據以及小數點的位置
 81         for(int i=0;i<=len[1]+sub;i++)
 82           printf("%d  ",data[1][i]);
 83           printf("\n");
 84         for(int i=0;i<=len[2]+sub;i++)
 85           printf("%d  ",data[2][i]);
 86           printf("\n");
 87         printf("dian   %d  %d\n",dian[1],dian[2]);
 88         */
 89         for(int i=0;i<2+len[1]+len[2];i++)
 90         {
 91             answer[i]=data[1][i]+data[2][i];
 92             //printf("%d  ",answer[i]);//兩數相加但是并不進位
 93         }
 94         //printf("\n");
 95 
 96         //進位處理,注意小數點在進位時的影響
 97         for(int i=0;i<2+len[1]+len[2];i++)
 98         {
 99             if(i+1==dian[1])
100             {
101                 answer[i+2]+=answer[i]/10;//跳過小數點位置進位
102                 answer[i]=answer[i]%10;
103                 i++;
104             }
105             else
106             {
107                 answer[i+1]+=answer[i]/10;
108                 answer[i]=answer[i]%10;
109             }
110         }
111         //令小數點位置處為零,防止尋找s時造成影響
112         if(dian[1]>=0)
113           answer[dian[1]]=0;
114          int s,t;
115          //尋找數據輸出的最低位
116         for(s=0;s<=dian[1];s++)
117             if(answer[s]!=0)
118                break;
119          //尋找數據輸出的最高位
120         for(t=len[1]+len[2]+2;t>dian[1];t--)
121             if(answer[t]!=0)
122                 break;
123         //printf("s=%d  t=%d\n",s,t);
124         //若相加兩數均為整數,則個位為最低位,輸出時無小數點
125         if(dian[1]==-1)
126           s=0;
127 
128         for(int i=t;i>=s;i--)
129         {
130             if(i==dian[1])
131               printf(".");
132             else
133               printf("%d",answer[i]);
134         }
135 
136         printf("\n");
137 
138     }
139     //cout << "Hello world!" << endl;
140     return 0;
141 }

?

?

?

?

轉載于:https://www.cnblogs.com/caoyuanlang/archive/2013/01/14/2860146.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260092.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260092.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260092.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

倒戈了,轉投簡書 --------

深情自白 還記得數月前那個月黑風高的晚上&#xff0c;筆主偶遇簡書&#xff0c;被那婀娜多姿的Markdown輸出深深吸引不能自拔&#xff0c;從此立下毒誓要兩邊同時發布。然而天有不測風云&#xff08;這邊的太丑&#xff09;&#xff0c;前思后想寢食難安之后作出決定&#xff…

如何通過windows控制linux,如何從Windows遠程控制Linux | MOS86

ifconfig將顯示您需要連接的IP地址。 如果Linux盒具有以太網連接&#xff0c;則該地址將在eth0旁邊列出。 如果以無線方式連接&#xff0c;請查找針對wlan0列出的IP地址。如果這不容易或不方便&#xff0c;則有另一種方法幾乎同樣簡單。 在瀏覽器窗口中&#xff0c;連接到路由器…

簡明Vim練級攻略(初學者)

http://blog.jobbole.com/18339/轉載于:https://www.cnblogs.com/sherry00/p/3931023.html

安卓psp模擬器聯機教程_刺激戰場國際服下載方法教程!安卓ios模擬器都有

刺激戰場國際服不需要VPN&#xff0c;不需要加速器。刺激戰場國際服賬號可以使用微信登入&#xff0c;進游戲頁面點擊more就可以了。安卓系統&#xff1a;①下載網易UU加速器&#xff0c;通過網易UU加速器平臺直接下載。②有的機型不能通過網易UU下載&#xff0c;但是可以通過Q…

[轉載] 民兵葛二蛋——第1集

轉載于:https://www.cnblogs.com/6DAN_HUST/archive/2013/01/15/2860782.html

菜鳥的jQuery源碼學習筆記(三)

1 each: function(callback, args) {2 return jQuery.each(this, callback, args);3 }, each:這個調用了jQuery.each方法&#xff0c;來遍歷當前集合。我們先來看看jQuery.each方法: //args是一個數組 each: function(obj, callback, args) {var value,i 0,length o…

docker pdf 中文版 linux,Docker入門實戰手冊PDF

一、為什么要使用 Docker&#xff1f;1 、快速交付應用程序? 開發者使用一個標準的image 來構建開發容器&#xff0c;開發完成之后&#xff0c;系統管理員就可以使用這個容器來部署代碼? Docker 可以快速創建容器&#xff0c;快速迭代應用程序&#xff0c;并讓整個過程可見…

C#環境下的鉤子詳解

C#環境下的鉤子詳解 摘自網上供自己備查: http://www.csharpwin.com/csharpspace/2423.shtml 1、 WINDOWS的消息機制 2、 HOOK介紹 3、 HOOK鏈 4、 HOOK鉤子的作用范圍 5、 HOOK類型 6、 回調函數 7、 HOOK鉤子的安裝與卸載 8、 HOOK實例演示 WINDOWS的消息機制 Windows系統是…

福昕PDF閱讀器的圖章妙用

前幾天同事發來一個pdf文件&#xff0c;說要把其中一部分遮住。我本來還想用pdf編輯軟件直接給刪除&#xff0c;結果發現是掃描文件制作的pdf不能編輯&#xff0c;大呼坑爹又要用ps了&#xff08;那家伙太慢&#xff0c;太占內存&#xff09;。 不想打開ps&#xff0c;于是開始…

openldap linux客戶端,OpenLDAP 客戶端安裝部署

六、OpenLDAP客戶端驗證1、配置/etc/openldap/ldap.conf默認客戶端不允許查詢OpenLDAP條目信息&#xff0c;如果需要讓客戶端查詢條目&#xff0c;需要添加OpenLDAP服務端的URI以及BASE條目&#xff0c;命令如下&#xff1a;2、客戶端驗證用戶的信息添加我已經在上篇博文里面介…

奮斗的IT小小鳥

寫了兩集的《迷茫的IT小小鳥》&#xff0c;在經過了這么長的墮落與反思的階段&#xff0c;終于也有點豁然開朗的感覺了&#xff0c;這學期以來浪費了太多的時間&#xff0c;本來規劃的很好的時間和任務在自己一次次的說服不了自己的過程中終究沒能實現&#xff0c;在這個期間更…

基于.Net Framework 4.0 Web API開發(4):ASP.NET Web APIs 基于令牌TOKEN驗證的實現

概述&#xff1a; ASP.NET Web API 的好用使用過的都知道&#xff0c;沒有復雜的配置文件&#xff0c;一個簡單的ApiController加上需要的Action就能工作。但是在使用API的時候總會遇到跨域請求的問題&#xff0c; 特別各種APP萬花齊放的今天&#xff0c;對API使用者身份角色驗…

匈牙利命名法為何被淘汰_為何甲烷的習慣命名法用甲烷而不是一烷?

其實在有機化合物中文翻譯早期&#xff0c;是有過用數字命名的階段的&#xff0c;先上圖。部分有機化合物在不同時期的漢譯名對照那么后來為何未采用數字&#xff0c;而使用天干。與商務印書館和鄭貞文個人其實有很大關系。那么有機物中文命名的演進是怎樣的呢&#xff1f;下面…

Windows下Mysql Cluster集群啟動腳本與啟動服務添加方法

3.2.8 集群啟動腳本及啟動服務注冊 從上面的啟動過程我們可以看出&#xff0c;Mysql集群啟動命令較復雜&#xff0c;容易造成cmd窗口因誤操作關閉而導致的數據庫停止&#xff0c;在此我介紹一下如何將這些命令的操作變成windos的服務項&#xff0c;當windos啟動時&#xff0…

c語言中for語句的作用是,c語言中for語句是怎么用的

匿名用戶1級2018-11-20 回答1&#xff1a;for循環for語句的格式為&#xff1a;for (初始化語句; 條件語句; 控制語句){語句1 ;語句2 ;....語句n ;}for 語句的執行順序是&#xff1a;首先執行“初始化語句”&#xff1b;然后測試“條件語句”&#xff1b;若條件成立&#xff0c;…

[Azure] Notification Hubs注冊模式

[Azure] Notification Hubs注冊模式 關于Azure Notification Hubs的注冊模式&#xff0c;可以參考下列連結的文件內容。 Notification Hubs Features - Registration Management 文件里介紹了兩種注冊模式&#xff1a;手機主動注冊、服務代理注冊&#xff0c;這兩個模式主要的差…

iOS 本地化應用程序匯總 國際化

最近要做一個應用要實現本地化&#xff0c;因為使用的是xcode4&#xff0c;應用程序本地化的問題跟以前的版本還是有些不同&#xff0c;在網上找了些資料對于xcode4以上的版本資料還是相對較少&#xff0c;有些最后要通過手動創建文件&#xff0c;這樣操作實在是太麻煩&#xf…

圖卷積神經網絡_深度層次化圖卷積神經網絡

來源&#xff1a;IJCAI 2019論文地址&#xff1a;https://arxiv.org/abs/1902.06667代碼地址&#xff1a;https://github.com/CRIPAC-DIG/H-GCNIntroduction1、問題定義&#xff1a;什么是半監督的節點分類&#xff1f;圖1 半監督節點分類如圖1所示&#xff0c;在標記數據量很少…

計算機二級怎么測試c語言,全國計算機等級測試二級C語言視頻教程(完整版).doc...

第一章 程序設計的基本概念01-01.程序設計的基本概念(1)01-02.程序設計的基本概念(2)01-03.程序設計的基本概念(3)第二章 C語言基礎知識02-01.簡單C語言的構成和格式(1)02-02.簡單C語言的構成和格式(2)02-03.標識符的組成和分類02-04.整型數據和實型數據(1)02-05.整型數據和實型…

去掉Phoca Download的Powered By

進入components/com_phocadownload/views/ 這是Phoca Download的模板文件夾 打開category/tmpl/default.php 分類頁 //echo </div><div class"pd-cb"> </div> . $this->tmpl[phoca_download];echo </div> ; 打開file/tmpl/default.php …