zoukankan      html  css  js  c++  java
  • HDU 2451 Simple Addition Expression(找规律,考验智商)

    题目

    最近比赛的题目好多签到题都是找规律的考验智商的题目啊,,,我怎么越来越笨了,,,,

    通过列举,可以发现规律:

    从左往右按位扫这个数:

    当数的长度大于1时:

    当首位大于3时,答案就是4*4*4*……*4*3(即pow(4,后面的长度-1)*3);

    否则,则是 首位的数字*4*4*4*……*4*3;

    当数的长度为1时,并且之前的(即其他的)都没有进位,则直接判断一下ans要加多少个;

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #include<algorithm>
    using namespace std;
    __int64 n ,ans;
    char s[15];
    
    int main()
    {
        while(scanf("%s",s)!=EOF)
        {
            ans=0;
            int len=strlen(s);
            int i=0;
            int flag=1;
            while(len>1)
            {
                if(s[i]>'3'){ans=ans+pow(4,len-1)*3;i++;flag=0;break;}
                ans=ans+(s[i]-'0')*pow(4,len-2)*3;
                len--;i++;
            }
            if(flag){
                if(s[i]>'3')ans+=3;
                else ans+=(s[i]-'0');
            }
            printf("%I64d
    ",ans);
        }
        
        return 0;
    }
    View Code
  • 相关阅读:
    第二周学习总结
    2019春总结作业
    第十二周作业
    第十一周作业
    第九周作业
    第八周作业
    第七周作业
    第六周作业
    第五周课程总结与报告
    Java第四周编程总结
  • 原文地址:https://www.cnblogs.com/laiba2004/p/4007337.html
Copyright © 2011-2022 走看看