zoukankan      html  css  js  c++  java
  • 算法竞赛入门经典题解——第三章 3-3数数字 UVa1225

    我的思路是打表,但不一次性打出所有。目前已经计算出的最大n标记为max,假如一次输入为n=13,就把n=max+1到13的结果都储存到二维数组中。max初始为0

    坑:每行输出末尾不能有空格,但必须换行(包括最后一行输出)

    #include <stdio.h>
    #include <stdlib.h>
    #include<string.h>
    #include<ctype.h>
    int s[10005][12];
    int main()
    {
        memset(s,0,sizeof(s));
        int T,n,max=0;
        scanf("%d",&T);
        while(T--){
            scanf("%d",&n);
            if(s[n][0]!=0)
            {
                int j;
                for(j=0;j<=8;j++){
                    printf("%d ",s[n][j]);
                }
            printf("%d",s[n][9]);
                 printf("
    ");
            }
            else{
                int i;
                int j;
                for(i=max+1;i<=n;i++){
                    for(j=0;j<=9;j++){
                        s[i][j]=s[i-1][j];
                    }
                    int k=i;
                    while(k>0)
                    {
                        s[i][k%10]++;
                        k=k/10;
                    }
                }
                max=n;
                for(j=0;j<=8;j++){
                    printf("%d ",s[n][j]);
                }
                printf("%d",s[n][9]);
                printf("
    ");
            }
        }
        return 0;
    }
  • 相关阅读:
    服务管理器
    自动启动管理器
    进程管理器
    进程模块查看器
    无DLL远程注入
    远程DLL注入
    U盘免疫
    WSAAsyncSelect Demo
    select Demo
    校正系统时间
  • 原文地址:https://www.cnblogs.com/loganlzj/p/9353725.html
Copyright © 2011-2022 走看看