1 条题解
-
0
C :
#include<stdio.h> #include<stdlib.h> #include<string.h> int x[1001],y[1001],z[1001]; int main(){ char a[1001],b[1001]; scanf("%s%s",&a,&b); //strcmp(a,b) 判断两个字符串是否相等,相等则为0 if(strcmp(a,"0")==0){ printf("%s",b); return 0; }else if(strcmp(b,"0")==0){ printf("%s",a); return 0; } int alen = strlen(a); int blen = strlen(b); int i,k=0,p=0; for(i=alen-1;i>=0;i--){ x[k] = a[i]-'0'; k++; } for(i=blen-1;i>=0;i--){ y[p] = b[i]-'0'; p++; } int n = alen; if(n<blen) n= blen; int f = 0; for(i=0;i<n;i++){ z[i] = x[i] + y[i] + f; if(z[i]>=10){ f = 1; }else{ f = 0; } z[i] = z[i]%10; } if(f==1) z[i] = 1; int j = n; for(i=n;i>=0;i--){ if(z[i]!=0){ j = i; break; } } for(i=j;i>=0;i--){ printf("%d",z[i]); } return 0; }
C++ :
#include <bits/stdc++.h> using namespace std; int main(){ //开始编写程序 string s1,s2;//s1 s2代表2个要运算的数 //数组定义时不赋值,值是未知数,如果定义的时候赋值,但赋值元素个数不够,默认补充0 //用这个特性初始化数组都为0 int a[250] = {0},b[250] = {0},r[250] = {0}; int len,i,j; getline(cin,s1); getline(cin,s2); //得到较长的字符串的长度,按照这个长度运算,短的要在前面补0(相当于倒过来后面补0) len = s1.length() > s2.length()?s1.length():s2.length(); //倒过来将字符串存入数组再运算,注意字符要转化为实际的整数 for(i = 0;i < s1.length();i++){ a[i] = s1[s1.length() - i - 1] - 48; } for(i = 0;i < s2.length();i++){ b[i] = s2[s2.length() - i - 1] - 48; } //a b数组按照较长的长度,逐位运算 for(i = 0;i < len;i++){ r[i] = a[i] + b[i]; } //r数组逐位进位 for(i = 0;i < len;i++){ r[i + 1] = r[i + 1] + r[i] / 10; r[i] = r[i] % 10; } //倒过来从第一个非0开始输出r数组 //r数组的长度最多是len + 1 if(r[len] != 0) len++; for(i = len - 1;i >= 0;i--) { cout<<r[i]; } }
Python :
print(int(input())+int(input()))
- 1
信息
- ID
- 2205
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者