1. 程式人生 > >HDU 1002 A + B Problem II C++解法

HDU 1002 A + B Problem II C++解法

一開始我是用char 陣列做的,但是後來覺得好麻煩,於是就用string物件來做,畢竟C++本來就是OOP語言

不多說,直接上程式碼:

#include <iostream>
#include <string>//不能寫成string,否則strlen未定義

using namespace std;
string sum(string &s1,string &s2)
{
	
	if(s1==""&&s2=="") 
		return "0";
	if(s1=="")
		return s2;
	if(s2=="")
		return s1;
	
	string max,min;
	int lens1=s1.length();
	int lens2=s2.length();

	if(lens1<lens2)
	{
		max=s2;
		min=s1;
	}
	else
	{
		max=s1;
		min=s2;
	}
	int maxlen=max.length();
	int minlen=min.length();

	int i,j;
	for(i=maxlen-1,j=minlen-1;j>=0;j--,i--)
		max[i]=max[i]+min[j]-'0';//加起來之後的數存到相應的max[i]中
		
	for(i=maxlen-1;i>0;i--)//檢測max中每一位的值,除了最前面的那一位
	{
		if(max[i]>'9')
		{
			max[i]=max[i]-10;
			max[i-1]+=1;//進位
		}	
	}
	if(max[0]>'9')//檢測第一位
	{
		max[0]=max[0]-10;//記得換掉max[0]的值
		max="1"+max;//這裡"1"或者'1'都可以
	}
	return max;
}

void main()
{
	
	int num;
	cin>>num;
	int i=1;
	int count=num;
	
	while(num)//我只想說,格式是硬傷,沒注意輸出格式,愣是花多了半個多小時去調程式
	{
		string s1,s2;
		cin>>s1>>s2;
		cout<<"Case "<<i<<":"<<endl;
		cout<<s1<<" + "<<s2<<" = "<<sum(s1,s2)<<endl;//“ + ”前後是有空格的
		if(i<count)
			cout<<endl;
		num--;
		i++;
		//cout<<sum(s1,s2)<<endl;
	}
}

HDU要看清楚格式輸出的要求,否則坑底你別叫!!!

相關推薦

HDU 1002 A + B Problem II C++解法

一開始我是用char 陣列做的,但是後來覺得好麻煩,於是就用string物件來做,畢竟C++本來就是OOP語言 不多說,直接上程式碼: #include <iostream> #incl

HDU 1002 A + B Problem II | 大數入門 (詳細 c/c++程式碼解析)

A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 434632    Accepted Subm

題解報告:hdu 1002 A + B Problem II(大數加法)

return 大數類 class family HERE contains urn integer ons Problem Description I have a very simple problem for you. Given two integers A and

HDU 1002 A + B Problem II

A + B Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 439087

HDU 1002 ( A + B Problem II )

A + B Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To

杭電ACM—HDU 1002 A + B Problem II

題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=1002 題目: Problem Description I have a very simple problem for you. Given two integers A

杭電 HDU 1002 A + B Problem II Java 大數的初級用法

<a target=_blank href="http://acm.hdu.edu.cn/showproblem.php?pid=1002">點選開啟連結</a> import

HDU 1002 A + B Problem II(兩個大數相加)

Problem Description I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B. In

hdu 1002 A + B Problem II 高精度加法

tar pre acm add return cli clu target max 題目鏈接http://acm.hdu.edu.cn/showproblem.php?pid=1002 高精度模板題 #include<iostream> #i

HPU 1002 A + B Problem II【大數】

lar 保存 memory positive test size mod ack auth A + B Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/327

hduoj 1002 A + B Problem II

hdu cin http short ins line include RoCE problem 原題鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=1002 題目描述如下: A + B Problem II Time Limit

HDOJ——1002 A + B Problem II

A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 432906

1002 1002 A + B Problem II大數相加

A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 317528    Acce

hdoj 1002 A + B Problem II 【大數A+B

A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 308540    Accep

HDOJ 1002.A+B Problem II 答案

#include<cstdio> #define MAXS 10000 char a[MAXS],b[MAXS],c[MAXS]; void cal(); int main() { in

【HDUOJ】第1002A + B Problem IIC語言解法

【HUDOJ-1002】1.原題:Problem DescriptionI have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of

HDU 1002 B - A + B Problem II

scan ora include color content can 今天 time ons A + B Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (

水題 第四站 HDU A + B Problem II

一道很簡單的題目讓我做得噁心無比,大數問題,不熟悉java,還是用C++寫吧。顯然需要用到字串,然後再將字串中的數字轉化為整數型別進行加法運算。去年做類似題目的時候還只知其然不知其所以然,現在明白了為什麼不能直接讀入陣列。 然而時隔一年也忘記了思路,加上當時沒有總結過,只是仿照程式碼敲

杭電ACM第1002題(A + B Problem II)答案 java版

方法一: package hduacm; import java.util.Scanner; public class Main{ public static void main(String[] args) throws Exception{

1001 A + B Problem IIC語言 大數加法模板)

#include<stdio.h> int len(char *a)//一個判斷字串長度的函式與strlen一樣 { int i=0; while(*a++!='\0') { i++; } return i; } /*************