poj 3720(Occurrence of Digits)

来源:互联网 发布:手机淘宝卖家版登陆 编辑:程序博客网 时间:2024/06/06 01:22

#include<stdio.h>#include<stdlib.h>#include<string.h>int c[20],a[200];int main(){int i,p,j,x,y,m,n,s,flag;while(scanf("%d%d",&x,&y)!=EOF){memset(c,0,sizeof(c));     for(i=2;i<=x;i++)     {         flag=1;         p=10;         memset(a,0,sizeof(a));         s=1; while(flag) {    m=p/i;            n=p%i;            a[s++]=p;            if(n==0)   {    c[m]++;    flag=0;    break;   }               else       {       c[m]++;       p=n*10;              for(j=1;j<s;j++)       {       if(a[j]==p)       {       flag=0;       break;       }       }   } }     }     printf("%d\n",c[y]);}return 0; } 

      算法老师留的作业题,是加了星号的,确实有点难度,wa了3次,第四次才AC的,题意挺好理解的,就是求一个数出现的次数,难点就在表示出循环体,我是用被除数判断的,如果重复出现了被除数,那就证明循环体出现了。用来记录数字出现的次数我用了一个数组来表示,比如说c[m]++就说明m出现了,c[m]里存的就是m出现的次数,用的变量比较多,而且是随意定义的,可能看不下去,不太好理解大笑

放代码

0 0
原创粉丝点击