杭电ACM 1002
来源:互联网 发布:美国用淘宝邮费很贵吗 编辑:程序博客网 时间:2024/05/21 10:14
看清格式描述很重要:
For each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line is the an equation "A + B = Sum", Sum means the result of A + B. Note there are some spaces int the equation. Output a blank line between two test cases.
如1 + 2 = 3;有几个空格,两个测试用例之间输入一个空行;
本人就是改了个presentation error改了好久......
C++:
#include<iostream>#include<string>#include<vector>using namespace std;bool check(string a,string b);void StringPlus(string a,string b);int main(){int T=0;string a;string b;cin>>T;if(T>20||T<1)return 0;int count=1;while(T!=0&&cin>>a>>b&&!cin.fail()){bool Istrue=check(a,b);if(Istrue){cout<<"Case "<<count<<":"<<endl;StringPlus(a,b);cout<<endl;}T--;count++;if(T>0)cout<<endl;}int Pause;cin>>Pause;return 0;}bool check(string a,string b){int i=0;int j=0;for(i;i<a.length();i++){if(a[i]<'0'||a[i]>'9')break;}for(j;j<b.length();j++){if(b[j]<'0'||b[j]>'9')break;}if(i<a.length()||j<b.length())return false;return true;}void StringPlus(string a,string b){vector<char> temp;string L,S;if(a.length() >b.length() ){L=a;S=b;}else{L=b;S=a;}int i,j;int temp1,temp2;char temp3;int add=0;//进位int yushu;for(i=S.length()-1,j=L.length ()-1;i>=0;i--,j--){temp1=S[i]-48;temp2=L[j]-48;//cout<<"temp1 temp2 add:"<<temp1<<" "<<temp2<<" "<<add<<endl;yushu=add+temp1+temp2-10;//cout<<"yushu:"<<yushu<<endl;if(yushu>=0)add=1;else {yushu+=10;add=0;}//此处add置0很重要
//cout<<"yushu"<<yushu<<endl;temp3=yushu+48;temp.push_back(temp3);}for(j;j>=0;j--){ temp2=L[j]-48; yushu=add+temp2-10; if(yushu>=0)add=1; else {yushu+=10;add=0;}//此处add置0很重要 temp3=yushu+48; temp.push_back(temp3);}if(add==1){temp3=add+48;temp.push_back(temp3);}cout<<a<<" + "<<b<<" = ";for(int k=temp.size()-1;k>=0;k--){ cout<<temp[k];}}
C:
#include<stdio.h>#include<stdlib.h>#include<string.h>void change(char *a){ int l,i; char temp; l=strlen(a); for(i=0;i<l/2;i++) { temp=a[i]; a[i]=a[l-1-i]; a[l-1-i]=temp; }}void Add(char *a,char *b){ int lena,lenb,i,max; int aa[1001],bb[1001]; lena=strlen(a); lenb=strlen(b); max=(lena>lenb?lena:lenb); memset(aa,0,sizeof(aa)); memset(bb,0,sizeof(bb)); for(i=0;i<lena;i++) aa[i]=a[i]-'0'; for(i=0;i<lenb;i++) bb[i]=b[i]-'0'; for(i=0;i<=max;i++) { aa[i]=aa[i]+bb[i]; if(aa[i]>9) { aa[i]-=10; aa[i+1]+=1; } } if(aa[max]>0) printf("%d",aa[max]); for(i=max-1;i>=0;i--) { printf("%d",aa[i]); } printf("\n");}int main(){ char a[1001],b[1001]; int n,i; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%s%s",a,b); printf("Case %d:\n",i); printf("%s + %s = ",a,b); change(a); change(b); Add(a,b); if(i<n) printf("\n"); } //system("pause"); return 0;}
- 杭电acm 1002
- 杭电ACM 1002
- ACM 杭电 1002
- 杭电ACM 1002
- 杭电ACM 1002
- 杭电ACM 1002
- 杭电ACM 1002
- 杭电ACM--1002
- hdu 杭电acm 1002
- 杭电acm 1000-1002
- 杭电ACM HDU 1002
- 杭电ACM 1002题
- 杭电ACM---1002(大数)
- 杭电 HDU ACM 1002
- 杭电ACM 1002大数相加
- 杭电ACM 1002 大数相加
- 杭电ACM----------1002 A+B problemII
- 杭电ACM题1000-1002
- 简单的程序诠释C++ STL算法系列之四:adjacent_find
- C++指针详解char * a, char ** a, char * a[], char a[][], char * a[][], char ** a[][], char * a [][][]
- 电子信息工程四年学习之思
- UVa729 - The Hamming Distance Problem(全排列)
- 搭建Window环境下Jni开发步骤(2)
- 杭电ACM 1002
- 使用const_cast的时机
- JavaScript学习笔记(二十九) method()方法
- 如何制作一款HTML5 RPG游戏引擎——第三篇,利用幕布切换场景
- 数据挖掘之预测建模(决策树)
- Unity3d C# 脚本学习小结(四)【怎么设置材质的Png图片部分透明】
- 银行线程---某银行有3业务受理窗口,每天办理业务100人次,输出业务办理过程。
- VB6.0中没有ADO控件该如何办???
- 名企招聘经典面试编程题集锦[第51-60题]