大数加法
题目描述
输入两个正整数a,b,输出a+b的值。
输入
两行,第一行a,第二行b。a和b的长度均小于1000位。
输出
一行,a+b的值。
样例输入
4 2
样例输出
6
#include<stdio.h> #include<iostream> #include<bits/stdc++.h> using namespace std; int a[1001],b[1001],c[1001]; int main() { int i=0,j=0; int x; string s1,s2; cin>>s1>>s2; int len1=s1.length(); int len2=s2.length(); if(len1<len2) { swap(len1,len2); swap(s1,s2); } for(i=0; i<len1; i++) { a[i]=s1[len1-i-1]-'0'; } for(i=0; i<len2; i++) { b[i]=s2[len2-i-1]-'0'; } int flag=0; int k=0; for(i=0; i<len1; i++) { c[k]=a[i]+b[i]+flag; flag=0; if(c[k]>9) { c[k]=c[k]%10; flag=1; } k++; } c[k]=flag; if(c[k]!=0) cout<<c[k]; for(i=k-1; i>=0; i--) { cout<<c[i]; } return 0; }
请编写程序
输入字符串
输出该字符串最多能断成多少截完全一样的子串
样例说明
最多能断成四个”abc”,也就是abc重复四遍便是原串
同时也能断成两个”abcabc”
最坏情况是断成一个原串”abcabcabcabc”
数据规模和约定
字符串长度< =1000
输入字符串
输出该字符串最多能断成多少截完全一样的子串
样例说明
最多能断成四个”abc”,也就是abc重复四遍便是原串
同时也能断成两个”abcabc”
最坏情况是断成一个原串”abcabcabcabc”
数据规模和约定
字符串长度< =1000
输入
一行,一个字符串
输出
一行,一个正整数表示该字符串最多能断成的截数
样例输入
abcabcabcabc
样例输出
4
这个题是模拟,主要是对substr的掌握
#include <iostream> #include<bits/stdc++.h> using namespace std; string s; int kepa(int n) { if(s.length()%n==0) return 1; return 0; } int main() { cin>>s; int i,j; int ans=1; for(i=1;i<s.length();i++) { if(kepa(i)) { int t=s.length()/i; int flag=0; string s1=s.substr(0,t); for(j=1;j<i;j++) { if(s.substr(j*t,t)!=s1) { flag=1; break; } } if(flag==0) { ans=i; } } } cout<<ans<<endl; return 0; }
高精度乘法
输入
两行,每行一个正整数,每个整数不超过10000位
输出
一行,两个整数的乘积。
样例输入
99 101
样例输出
9999
#include<iostream> #include<bits/stdc++.h> #include<algorithm> using namespace std; int c[21000],a[21000],b[21000]; int main() { string s1,s2; cin>>s1>>s2; int i,j; if(s1.length()<s2.length()) swap(s1,s2); int len1=s1.length(); int len2=s2.length(); for(i=0;i<len1;i++) { a[i]=s1[len1-i-1]-'0'; } for(i=0;i<len2;i++) { b[i]=s2[len2-i-1]-'0'; } if(a[0]==0&&len1==1||b[0]==0&&len2==1) { cout<<0<<endl; return 0; } for(i=0;i<len1;i++) { for(j=0;j<len2;j++) { c[i+j]+=a[i]*b[j]; } } for(i=0;i<len1;i++) { if(c[i]>=10) { c[i+1]+=c[i]/10; c[i]%=10; } } for(i=len1+3;i>=0;i--) { if(c[i]!=0) break; } for(j=i;j>=0;j--) { cout<<c[j]; } cout<<endl; return 0; }