zoukankan      html  css  js  c++  java
  • 统计数字问题1

    # include "stdlib.h"
    # include "stdio.h"

    //统计数字问题,此算法并不高效。还可以改进

    int f( int nn);


    void main()

    {
     int i,j,m,mm,n,nn,k=0,n1=1,n2,t=0,sumn2;
     int a[10];//0,1,...9
     
     printf("输入页码\n");
     scanf("%d",&n);
           nn=n;

    while (nn/10)
     {
      k++;
      nn/=10;
     }
       
     printf("页码为%d 位数\n",k+1);
       
     for (i=1;i<=k;i++)
      
     {
      n1 *= 10;
     }
     n2=n1;
     sumn2=0;
     while (n2)
     {
      sumn2+=n2/10;
      n2/=10;

    }

    printf("相关系数 如下:n=%d, n1=%d,n2=%d ",n,n1,n2);
     printf(",k=%d",k);
     for (i=0;i<=9;i++)
     {
      a[i]=0;
     }//数组的初始化
     if (k==0)
     {
      for (i=1;i<=n;i++)
       a[i]=a[i]++;
     }//一位数的情况
     else
          
      for(i=0;i<=9;i++)
      {
       a[i]=f(k);//0的问题要注意
      
      }
      a[0]-=sumn2;
        for (m=n1;m<=n;m++)
      
     {
      mm=m;
       while(mm)
       {

    j=mm%10;
          a[j] = a[j]+1;
          mm/=10;

    }
     }
      
     }
     printf("\n");
     for(i=0;i<=9;i++)

    printf("a[%d]=%d\n",i,a[i]);

    }


    //-------f()的描述为n个0 到n个9的次数,0 为特殊情况

    int f (int nn)
       
      int sumf=nn,i;
      for(i=1;i<=nn-1;i++)   sumf *= 10;
      return (sumf);
     }//end f()
      -----结果显示---------------------------------------------
    输入页码
    11
    页码为2 位数
    相关系数 如下:n=11, n1=10,n2=0 ,k=1
    a[0]=1
    a[1]=4
    a[2]=1
    a[3]=1
    a[4]=1
    a[5]=1
    a[6]=1
    a[7]=1
    a[8]=1
    a[9]=1
    Press any key to continue

  • 相关阅读:
    Bootstrap3 formテキストフィールド横幅の指定の仕方
    HTML豆ちしき
    iMac Termanel命令まとめ
    ちょっとした難しい言葉まとめ①
    即使痛苦,绝不止步
    Bower —— 一个Web的包管理工具
    词汇
    8.3.2018 1 Quick and dirty 快而脏的快餐
    7.26 5 优化浪漫 恋爱中的经济学
    7.26 4 印度旅馆阿鲁沙之家
  • 原文地址:https://www.cnblogs.com/big4panda/p/6417618.html
Copyright © 2011-2022 走看看