zoukankan      html  css  js  c++  java
  • 红桥杯

    大数加法

    题目描述
    输入两个正整数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 

    输入
    一行,一个字符串 
    输出
    一行,一个正整数表示该字符串最多能断成的截数 
    样例输入
    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;
    }
  • 相关阅读:
    Kotlin基本语法笔记3之定义类、继承及创建实例
    Kotlin基本语法笔记2之类型检测及自动类型转换、循环
    Kotlin基本语法笔记之函数、变量的定义及null检测
    C++笔记之外部类访问内部类的私有成员
    正则表达式之不区分大小写的匹配
    springMVC之helloworld
    数组学习
    反射reflect
    JSP学习
    自己做的菜
  • 原文地址:https://www.cnblogs.com/kepa/p/10462784.html
Copyright © 2011-2022 走看看