zoukankan      html  css  js  c++  java
  • online_judge_1051

    <span style="font-size:18px;">#include <stdio.h>
    int main()
    {
        int a,n;
        while(scanf("%d%d",&a,&n)!=EOF)
        {
            if(a<1||a>9||n>100||n<1)
                continue;
            char sum[101]={0};
            int j,x,y=0;
            for(j=100;j>99-n;j--)
            {
                x=(a*(n-100+j))%10;
                sum[j]=(x+y)%10;
                y=(x+y)/10+(a*(n-100+j))/10;
            }
            for(j=0;j<101;j++)
            {
                if(sum[j]==0&&j<=101-n)
                continue;
                printf("%d",sum[j]);
            }
            printf("
    ");
        }
        return 0;
    }
    /**************************************************************
        Problem: 1051
        User: 2499088506
        Language: C
        Result: Accepted
        Time:0 ms
        Memory:912 kb
    ****************************************************************/</span>



    求解思想:这道题木真是让我煞费苦心啊!之前第一反应是用数组来做,寻找运算之间的规律!但是立马改变主意,想用数学方法来做,这是作死!!
    0<n<=100.长整型也无法表示位数在100的数字。想了许久,如果把数字拆分,1<=a<=9.数学基础可以知道a!=9时,把i——i+9位的这十位
    上的数字相加得到的结果还是在i——i+9位上。a==9时,9999=10000-1.利用这种思想来求解。
    后来在实践过程中发现这样实现的结构是相当复杂的!!果断参考网上的想法,一看才恍然大悟。就是自己最初的想法,只是没有付出实践。看来,
    很多时候思维太重要了。没有站在机器的角度思考。。

  • 相关阅读:
    poj 3666 Making the Grade
    poj 3186 Treats for the Cows (区间dp)
    hdu 1074 Doing Homework(状压)
    CodeForces 489C Given Length and Sum of Digits...
    CodeForces 163A Substring and Subsequence
    CodeForces 366C Dima and Salad
    CodeForces 180C Letter
    CodeForces
    hdu 2859 Phalanx
    socket接收大数据流
  • 原文地址:https://www.cnblogs.com/abc-24990/p/4257541.html
Copyright © 2011-2022 走看看