zoukankan      html  css  js  c++  java
  • HDOJ 1013

    //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;

    }

  • 相关阅读:
    SQL高效运行注意事项(四)
    SQL Serve里DBA要去改变的3个配置选项
    sql还原数据库时候,遇到数据库被占用的解决情况
    sqlserver中将datetime类型转换为yyyyMMddHHmmss格式
    SQL 高效运行注意事项(三)
    当您解开后您从 Internet 上下载的压缩的文件时,文件的修改日期更改为您提取它的日期
    MySQL通过自定义函数实现递归查询父级ID或者子级ID
    YII2集成GOAOP,实现面向方面编程!
    C语言关于指针的注意事项
    转载 could not find a getter for ... in class ... 异常的原因解析
  • 原文地址:https://www.cnblogs.com/hxsyl/p/2462202.html
Copyright © 2011-2022 走看看