• 1047找环环&1503整数探究


    1047就是判断一个数乘以他的位数1~n后是这个数转来转去的一个形式。主要就是大整数乘法

    贴shi代码

    #include<iostream>
    #include<string>
    #include<algorithm>
    using namespace std;
    
    //test记录输入的数,back计算乘法之后的数
    int test[65];
    int back[65];
    //判断当前的n,是否构成一个环
    int iscyc(int N)
    {
        int i,j,k;
        bool eq=1;
        //将test作为一个基础,进行比较
        for(i=0;i<N;i++)
        {
            if(back[i]==test[0])
            {
                //当有一个地方和test[0]相等时,继续往下比较,判断是否是整个串都相等
                //一定要注意这里的每次的初始化!!! 每次找到相同的就先设相等
                eq=1;
                for(j=0;j<N;j++)
                {
                    if(back[(i+j)%N]!=test[j])  
                    {
                        eq=0;
                        break;
                    }
                }
                if(eq) return 1;
            }
        }
        return 0;
    }
    
    int main()
    {
        string onec;
        int i,j,k,N,resid,value,flag=0,pos;
        while(cin>>onec)
        {
            pos=0;
            memset(test,0,sizeof(test));
            memset(back,0,sizeof(back));
            //还是将输入的string转换成int 数组 倒序
            for(i=onec.size()-1;i>=0;i--)
            {
                back[pos]=onec[i]-'0';
                pos++;
            }
    
            N=onec.size();
            //计算对应n的乘法之后的值
            resid=0;
            for(i=0;i<N;i++)
            {
                resid=0;
                for(j=0;j<N;j++)
                {
                    value=back[j]*(i+1)+resid;
                    test[j]=value%10;
                    resid=value/10;
                }
    
                if(0) {int a=1;}
                else{
                    flag=iscyc(N);
                    //有一个不是,则不是
                    if(!flag)
                    {
                       cout<<onec<<" is not cyclic"<<endl;
                        break;
                    }
                }
            }
            if(flag) cout<<onec<<" is cyclic"<<endl;
        }
        return 0;
    }

    1503大水 就是大整数加法,直接代码

    #include<iostream>
    #include<string>
    using namespace std;
    int num[101];
    int sum[10100];
    
    int main()
    {
        string onen;
        int i,j,k,pos;
        memset(sum,0,sizeof(sum));
        while(cin>>onen&&onen!="0")
        {
            memset(num,0,sizeof(num));
            pos=0;
            for(i=onen.size()-1;i>=0;i--)
            {
                num[pos]=onen[i]-'0';
                pos++;
            }
            for(i=0;i<pos;i++)
            {
                sum[i]+=num[i];
                if(sum[i]>=10) 
                {
                    sum[i+1]++;
                    sum[i]=sum[i]%10;
                }
            }
        }
        for(i=10100-1;i>=0;i--) if(sum[i]) break;
        for(j=i;j>=0;j--)
            cout<<sum[j];
        cout<<endl;
        return 0;
    }
                
  • 相关阅读:
    生活感悟
    shell语法
    mycat
    阐述 如何高效理解学习
    部署ETCD集群
    文件修改
    文件处理
    a's
    shell中备份web站点及数据库
    openssh版本升级修复漏洞
  • 原文地址:https://www.cnblogs.com/soyscut/p/3218111.html
Copyright © 2020-2023  润新知