• 1013:Digital Roots


    注意:大数要用字符串表示!

    sprintf:字符串格式化命令

    主要功能:将格式化的数据写入某个字符串缓冲区

    头文件:<stdio.h>

    原型

    int sprintf( char *buffer, const char *format, [ argument] … );

    参数列表

    bufferchar型指针,指向将要写入的字符串的缓冲区。
    format:格式化字符串。
    [argument]...:可选参数,可以是任何类型的数据。
     

    返回值

    返回写入buffer 的字符数,出错则返回-1. 如果 buffer 或 format 是空指针,且不出错而继续,函数将返回-1,并且 errno 会被设置为 EINVAL。
    sprintf 返回被写入buffer 的字节数,结束字符‘’不计入内。即,如果“Hello”被写入空间足够大的buffer后,函数sprintf 返回5。

     

    代码实现:

     1 #include <iostream>
     2 #include <string>
     3 #include <stdio.h>
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     /*注意:大数要用字符串表示*/
     9     string str;
    10     while(cin>>str && str != "0")
    11     {
    12         while(str.length()>1)
    13         {
    14             int sum = 0;
    15             for(int i = 0;i<str.length();i++)
    16             {
    17                 switch(str[i])
    18                 {
    19                 case '0':
    20                     sum += 0; break;
    21                 case '1':
    22                     sum += 1; break;
    23                 case '2':
    24                     sum += 2; break;
    25                 case '3':
    26                     sum += 3; break;
    27                 case '4':
    28                     sum += 4; break;
    29                 case '5':
    30                     sum += 5; break;
    31                 case '6':
    32                     sum += 6; break;
    33                 case '7':
    34                     sum += 7; break;
    35                 case '8':
    36                     sum += 8; break;
    37                 case '9':
    38                     sum += 9; break;
    39                 }
    40             }
    41             char b[10];
    42             sprintf(b,"%d",sum);
    43             str = b;
    44         }
    45         cout<<str<<endl;
    46     }
    47     /*超时
    48     while(1)
    49     {
    50         int x;
    51         cin>>x;
    52         int y = x;
    53         int s = 0;
    54         if(x==0) break;
    55         else
    56         {
    57              while(y>9)
    58             {
    59                 s += y%10;
    60                 y = y/10;
    61                 if(y<10)
    62                 {
    63                     s += y;
    64                     if(s>9)
    65                     {
    66                         y = s;
    67                         s = 0;
    68                     }
    69                     else
    70                     {
    71                         cout<<s<<endl;
    72                     }
    73                 }
    74             }
    75         }
    76     }
    77     */
    78     return 0;
    79 }
  • 相关阅读:
    配置步骤
    swap区
    Oracle的left join中on和where的区别
    drop与truncate
    关于trace
    oracle执行计划连接方式
    oracle系统结构
    查询存档
    oracle统计信息
    分区索引
  • 原文地址:https://www.cnblogs.com/ttzm/p/6077622.html
Copyright © 2020-2023  润新知