UVA-10127-Ones

来源:互联网 发布:安卓socket编程实例 编辑:程序博客网 时间:2024/05/01 00:59

这个题会涉及到两个坑,一个是因为若数据太大会超出int,另一个是因为循环过多会RE。以下是未AC代码:

#include<stdio.h>

int pan(int n)
{
    char str[999];
    int i,j=0;
    sprintf(str,"%d",n);
    for(i=0;i<strlen(str);i++)
    {
        if(str[i]!='1')
            break;
        j++;
    }
    if(j==strlen(str))
        return j;
    else
        return 0;
}
int main()
{
    int n,i,j,k;
    while(scanf("%d",&n)!=EOF)
    {
        for(i=1;i<10000;i++)
        {


            if(pan(i*n))
            {
                printf("%d\n",pan(i*n));
                break;
            }
        }
    }
    return 0;

}



以下是AC代码:

#include <iostream>#include <cstring>using namespace std;int main(){int n;while (scanf("%d",&n) != EOF){int A[10002],i;memset(A,-1,sizeof(A));A[1] = 1;for (i = 2; i < 10002; ++i){A[i] = (10 * A[i-1] + 1)% n;if (A[i] == 0)break;}cout << i << endl;}return 0;}


0 0
原创粉丝点击