列表

详情


BC152. The Biggest Water Problem

描述

给你一个数,让他进行巴啦啦能量,沙鲁沙鲁,小魔仙大变身,如果进行变身的数不满足条件的话,就继续让他变身。。。直到满足条件为止。
巴啦啦能量,沙鲁沙鲁,小魔仙大变身:对于一个数,把他所有位上的数字进行加和,得到新的数。
如果这个数字是个位数的话,那么他就满足条件。

输入描述

给一个整数数字n(1<=n<=1e9)。

输出描述

输出由n经过操作满足条件的数

示例1

输入:

12

输出:

3

说明:

12 -> 1 + 2 = 3

示例2

输入:

38

输出:

2

说明:

38 -> 3 + 8 = 11 -> 1 + 1 = 2

原站题解

C 解法, 执行用时: 2ms, 内存消耗: 276KB, 提交时间: 2022-07-26

#include <stdio.h>
void Change(int num);

int main()
{
    int num;
    
    scanf("%d", &num);
    Change(num);
    
    return 0;
}

void Change(int num)
{
    int val = 0;
    while(num)
    {
        val += num%10; 
        num /= 10;
    }

    if(val >= 10)
    {
        Change(val);
    }
    else
    {
        printf("%d\n", val);
    }
    
    return ;
}

C 解法, 执行用时: 2ms, 内存消耗: 276KB, 提交时间: 2022-04-09

#include<stdio.h>
int chuli(int n) {
    int sum = 0;
    while (n != 0) {
        sum += n % 10;
        n = n / 10;
    }
    return sum;
}
int main() {
    int n, nn;
    scanf("%d", &n);
    nn = chuli(n);
    while (nn >= 10) {
        nn = chuli(nn); //不断赋值不断调用
    }
    printf("%d", nn);
}

C 解法, 执行用时: 2ms, 内存消耗: 280KB, 提交时间: 2022-05-20

#include <stdio.h>

int main(void)
{
    int  a;
    scanf("%d",&a);
    
    int b,c;
    
    while(1)
    {
        b=a%10;
        c=a/10;
        a=b+c;
        if(a<10)break;
    }
    
    printf("%d",a);
}

C 解法, 执行用时: 2ms, 内存消耗: 284KB, 提交时间: 2022-08-03

#include<stdio.h>
int main()
{
	int a, num = 0;
	scanf("%d\n", &a);
    while(a>10)
    {
        int temp=a;
        num=0;
        while (temp) 
		{
			num += (temp % 10) ;
			temp=temp/ 10;
		}
    if(num<10)
    {
        printf("%d", num);
        break;
    } 
    else{a=num; } 
    }
    	
}

C 解法, 执行用时: 2ms, 内存消耗: 284KB, 提交时间: 2022-07-30

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    if(n%9)
        printf("%d",n%9);
    else
        printf("9");
    
    
}

上一题