HDU-1212

题目:戳这里

分析:

从最高位开始算起

代码:

用递归写:

#include <stdio.h>
#include <string.h>
char a[1005];
int b;
int mod(int len)
{
    if(len==0)
    {
        return ((a[len]-'0')%b)%b;
    }
    else
    {
        return ((mod(len-1)*(10%b))%b+((a[len]-'0')%b))%b;
    }
}
int main()
{
    int len;
    while(scanf("%s %d",a,&b)!=EOF)
    {
        getchar();
        len=strlen(a);
        printf("%d\n",mod(len-1));
    }
    return 0;
} 

用循环写:

#include <stdio.h>
#include <string.h>
int main()
{
    int b,len,temp;
    char a[1005];
    while(scanf("%s%d",a,&b)!=EOF)
    {
        getchar();
        int temp=0;
        for(int i=0;i<=strlen(a)-1;i++)
             temp=((temp*(10%b))%b+((a[i]-'0')%b))%b;
        printf("%d\n",temp);
    }
 } 

还是循环简单

猜你喜欢

转载自blog.csdn.net/wqn20172674/article/details/80398392