社区讨论
超长代码 20pts RE 求调
P1932A+B A-B A*B A/B A%B Problem参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @m4twd0jk
- 此快照首次捕获于
- 2024/12/18 20:56 去年
- 此快照最后确认于
- 2025/11/04 12:39 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
long long a[10005],b[10005],c[10005];
string n,m,str;
void in(){
cin>>n>>m;
str=n;
}
void zh(string s,long long a[]){
reverse(s.begin(),s.end());
for(long long i=0;i<s.size();i++){
a[i]=s[i]-'0';
}
}
void jia(){
long long la,lb,lc;
zh(n,a);
zh(m,b);
la=n.size();
lb=m.size();
lc=max(la,lb);
for(long long i=0;i<lc;i++){
c[i]=a[i]+b[i];
}
long long jw=0;
for(long long i=0;i<lc;i++){
c[i]=c[i]+jw;
jw=c[i]/10;
c[i]=c[i]%10;
}
if(jw!=0){
lc++;
c[lc-1]=jw;
}
for(long long i=lc-1;i>=0;i--){
cout<<c[i];
}
cout<<'\n';
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
}
string jian(string s1,string s2){
string s3="",ss="";
long long x=0;
if(s1.size()<s2.size()||(s1.size()==s2.size()&&s1<s2)){
swap(s1,s2);
s3="-";
}
if(s1==s2) return "0";
for(long long i=0;i<s1.size();i++) a[i+1]=s1[i]-'0';
for(long long i=0;i<s2.size();i++) b[i-s2.size()+s1.size()+1]=s2[i]-'0';
for(long long i=1;i<=s1.size();i++) a[i]-=b[i];
for(long long i=s1.size();i>=1;i--){
if(a[i]<0){
a[i]+=10;
a[i-1]--;
}
}
while(a[x]==0) x++;
for(long long i=x;i<=s1.size();i++) ss+=char(a[i]+'0');
return s3+ss;
}
void cheng(){
if(n=="0"||m=="0") cout<<0<<'\n';
else{
long long len1=n.size();
for(long long i=1;i<=len1;i++)
a[i]=n[len1-i]-'0';
long long len2 =m.size();
for(long long i=1;i<=len2;i++) b[i]=m[len2-i]-'0';
long long len=len1+len2;
for(long long i=1;i<=len1;i++){
for(long long j=1;j<=len2;j++) c[i+j-1]+=a[i]*b[j];
}
for(long long i=1;i<=len;i++){
if(c[i]>=10){
c[i+1]+=c[i]/10;
c[i]%=10;
}
}
if(c[len]==0) len--;
for(long long i=len;i>=1;i--) cout<<c[i];
cout<<'\n';
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
}
}
void chu(){
long long s=stoll(m);
long long l1=str.size(),x=0;
for(long long i=1;i<=l1;i++) a[i]=int(str[i-1])-48;
for(long long i=1;i<=l1;i++){
x=x*10+a[i];
b[i]=x/s;
x=x%s;
}
long long n=1;
while(b[n]==0&&n<l1) n++;
for(long long i=n;i<=l1;i++) cout<<b[i];
cout<<'\n';
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
}
void mo(){
long long pop=stoll(n),pop1=stoll(m);
cout<<pop%pop1;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
in();
jia();
cout<<jian(n,m)<<'\n';
cheng();
chu();
mo();
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...