HDOJ 1013

简介: //wa的代码,既然说是整数,应该不用考虑大数,可实际上却要考虑大数   #include int main() { int num,temp; while(scanf("%d",&num),num) { temp=num%9; printf("%d\n",temp); } r...

//wa的代码,既然说是整数,应该不用考虑大数,可实际上却要考虑大数

 

#include<stdio.h>

int main()

{

int num,temp;

while(scanf("%d",&num),num)

{

temp=num%9;

printf("%d\n",temp);

}

return 0;

}

//或者mod9,若是k,则各个数字和为k

 

//既然说是整数,应该不用考虑大数,可实际上却要考虑大数

 

/*超时代码

#include<stdio.h>

int count_digit(int num)

{

int sum=0,p=1;

while(p)

{

p=num%10;

sum+=p;

p=num/10;

}

return sum;

}

int main()

{

int num,ans;int temp;

while(scanf("%d",&num),num)

{

temp=count_digit(num);

if(temp>=10)

temp=count_digit(temp);

printf("%d\n",temp);

}

return 0;

}*/

 

 

 

 

 

 

 

 

 

 

 

//AC

 

#include<stdio.h>

#include<string.h>

#define MAX 10000

char a[MAX];

void count(int n)

{

    int tem,sum=0;

    while(n!=0)

    {

        sum+=n%10;

        n/=10;

    }

    if(sum<10)

    {

        printf("%d\n",sum);

    }

    else

    {

        count(sum);//这样便不必用goto

    }

}

int main()

{

    int i,num,len;

    while(scanf("%s",a)&&a[0]!='0')

    {

        num=0;

        len=strlen(a);

        for(i=0;i<len;i++)

        {

            num+=(a[i]-'0');

        }

        count(num);

    }        

    return 0;

}

 

 

 

 

 

 

 

 

//程序停止,因为str为指针,未指向确定空间,需要分配一个很大的空间

#include<stdio.h>

#include<string.h>

int main()

{

char *str;

int i;int len,sum=0,ans; 

//不能char str,这是单字符,否则subscript(下标) requires array or pointer type

while(scanf("%s",str),str[0]!='0')

//刚开始,多加了取地址符,结果程序停止工作

{

//getchar();

len=strlen(str);

for(i=0;i<len;i++)

sum+=str[i]-'0';

ans=sum%9;

printf("%d\n",ans);

}

return 0;

}

/*程序停止工作,提交会TLE

1.可能递归没有出口

2.scanf中未加取地址符,或者多加了取地址符

3.引用了未经初始化的内存*/

 

 

 

 

 

 

 

 

 

 

 

 

 

#include<stdio.h>

#include<string.h>

#define N 10000

char str[N];

int main()

{

int i;int len,sum,ans; 

//不能char str,这是单字符,否则subscript(下标) requires array or pointer type

while(scanf("%s",str),str[0]!='0')

//刚开始,多加了取地址符,结果程序停止工作

{

//getchar();

len=strlen(str);

sum=0;//需放在while内部

for(i=0;i<len;i++)

sum+=str[i]-'0';

ans=sum%9;

printf("%d\n",ans);

}

return 0;

}

目录
相关文章
HDOJ 2802 F(N)
HDOJ 2802 F(N)
99 0
HDOJ 2802 F(N)
|
机器学习/深度学习
HDOJ 2074 叠筐
HDOJ 2074 叠筐
123 0
HDOJ 1412 {A} + {B}
HDOJ 1412 {A} + {B}
122 0
HDOJ 2034 人见人爱A-B
HDOJ 2034 人见人爱A-B
128 0
HDOJ 1323 Perfection(简单题)
HDOJ 1323 Perfection(简单题)
127 0
|
Java 数据安全/隐私保护
HDOJ 2100 Lovekey
HDOJ 2100 Lovekey
101 0
HDOJ 1303 Doubles(简单题)
HDOJ 1303 Doubles(简单题)
104 0
HDOJ 2019 数列有序!
HDOJ 2019 数列有序!
131 0
|
安全
HDOJ 2022 海选女主角
HDOJ 2022 海选女主角
155 0
|
Java 机器学习/深度学习