输入说明
两行,每行一个整数,每个整数不超过1000位。
输出说明
一行,两个整数的和。
输入样例复
15464315464465465
#include<iostream>
#include<cstring>
using namespace std
int main(){
char a[1005],b[1005],c[1005]//
int i,j,la,lb,r=0,x,y,k=0//r表示进位i,j相当于两个指针,在数组内移动
//k=0表示进行加法运算后的数组指针,指向第一个元素,la表示数组长度,调用strlen函数,需要头文件cstring
cin>>a>>b
la=strlen(a)
lb=strlen(b)
for(i=la-1,j=lb-1i>=0 || j>=0 || r>0i--,j--)
{
if(i>=0) x=a[i]-'0'//当i大于等于0时,i这个指针指向的数组还有元素可以加法运算,并把该元素代表的数值传给x
else x=0//此时a数组中没有元素了,进行加法运算时把x当作0和另一个数组元素相加
if(j>=0) y=b[j]-'0'
else y=0
int sum=x+y+r//求此时a数组元素与b数组元素代表的数值加上进位和
r=sum/10//求进位
c[k++]=sum%10+'0'//将该位上的数值转换为字符型,并传递给c数组
}
for(int s=k-1s>=0s--)
{
printf("%c",c[s])
}
}
登录后复制
482321654151
输出样例
15464797786119616
数据范围提示
数据规模和约定:每个整数不超过1000位
#include<stdio.h>
#include<string.h>
int main()
{
void zh(double r)
double r
printf("请输入金额(范围小于千亿):\n")
scanf("%lf",&r)
if(r>=1000000000000)
printf("输入的数超出范围,请重新输入\n")
zh(r)
}
void zh(double r){
double y
int x,m,n,j,i,k,flag=0
char str1[][4]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}
char str2[][4]={"仟","佰","拾","亿","仟","佰","拾","万","仟","佰","拾","元","角","分"}
int str3[30]
y=r-(int)r
x=(int)r
for(i=0i<=11i++){
m=(int)((int)x%10)
str3[11-i]=m
x=(int)(x/10)
}
str3[12]=(int)(y*10)
str3[13]=(int)(y*100)%10
for(k=0k<=13&&flag==0k++){
if(str3[k]>0){
flag=1n=k
}
}
for(j=nj<=13j++)
printf("%s%s",str1[str3[j]],str2[j])
printf("\n")
}
#include <stdio.h>char wei[5][6]={"","shi ","bai ",""}
char du[10][6]={"","yi ","er ","san ","si ","wu ","liu ","qi ","ba ","jiu "}
int main()
{
int n,t,a,b,i=0,x,y,z,k=0
int c[12]
scanf("%d",&n)
i=0k=0
t=n
while(t)
{
i++
a = t
t/=10
b=a-10*t
c[i]=b
}
c[0]=0
for(t=it>0t--)
{
if((t==2||t==6||t==10)&&t==i&&c[t]==1)//当十、十万、十亿位为1时不读 yi
else printf("%s",du[c[t]])
x=t%4 //除余4,
if (c[t]*c[t-1]==0) k=1//如果本位或者下位为0,就标记
else k=0
if (c[t]==0&&c[t-1]!=0&&t!=5&&t!=9)//万位为或者亿位为零,就不读 ling
printf("ling ")
if (k==0&&x!=0) printf("%s",wei[x-1]) //如果没有被标记就读出来相应数位的拼音,就是如果输入的数字不包含0,就读,包含有下面的语句执行
if((c[2]!=0&&t==2||c[6]!=0&&t==6||c[10]!=0&&t==10)&&c[t-1]==0)//十位,十万位,十亿位不为零,且下位是0,就读出来这一位,比如20,,230
printf("%s",wei[x-1])
if((c[3]!=0&&t==3||c[7]!=0&&t==7)&&c[t-1]==0)////百位,百万位,不为零,且下位是0,就读出来这一位
printf("%s",wei[x-1])
if(t%4==0&&c[t]!=0) printf("qian ")//读千,千万
if(t==5&&c[t]+c[6]+c[7]+c[8]!=0) printf("wan ")
if(t==9)printf("yi ")
}
return 0
}