文章

2

粉丝

135

获赞

3

访问

5.4k

头像
do while循环 sprintf 格式化
P1153 北京大学机试题
发布于2023年3月17日 22:26
阅读数 2.4k

利用sprintf 将数字转化为字符串 ,strlen判断长度是否为1,为1 则输出digital root

 

#include <iostream>
#include <bitset> 
#include <string>
#include <cmath>
#include <cstring>
using namespace std;


char buf[1010];
int main() {
    int c;
    while (true) {
        scanf("%s", buf);
        if (strcmp(buf, "0") == 0)break;

        do {
            int tmpc = 0;
            for (int i = 0;i < strlen(buf);i++) {
                tmpc += buf[i] - '0';
            }
            sprintf(buf, "%d", tmpc);

        } while (strlen(buf) > 1);
        printf("%s\n", buf);
    }
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发