_数的倒数

前言:这原本是个简单的问题,想求一个数的倒数,例如123的倒数就是321,但是在其中也遇到了很多问题,如vscode窗口闪退,打不开窗口,自己粗心大意没有加return,不清楚scanf的返回值

vscode窗口闪退

解决VS code 工具中C++运行黑窗口一闪而退的问题 - wancy - 博客园 (cnblogs.com)

我参考了这篇文章 ,对launch.json文件进行了修改,修改部分如图下黑框,应该是用cmd命令窗口打开这个执行文件,具体我也不懂

 打不开窗口

vscode运行时没有黑窗口问题_vscode怎么调出黑窗口-CSDN博客

 跟刚才差不多的位置

 粗心大意不加return

我搞了个用户自定义代码片段,以后写函数就这个形式

vsCode设置用户代码片段_vscode用户代码片段设置-CSDN博客

"function_return": {
		"prefix": "f_return",
		"body": [			
			"uin8_t?$1 Function_Name(void?$2)",
			"{",
			"\tuin8_t return_value=0;",
			"\t",
			"\treturn what?$0;",
			"}"
		],
		"description": "有返回值的函数"
	}

不清楚scanf的返回

scanf的返回值-CSDN博客

简单来说scanf会返回匹配成功的项数,例如scanf("%d %d",&a,&b);如果我输入0,a,则返回1,输入0,1,则返回2,输入失败返回EOF,具体我也不是很清楚,因为用的不多

 数的“倒数”的代码

方式1

不断的取余取整,然后每一次过程对结果乘以10,注意这里result初始化为0

uint16_t Reciprocal_1(uint16_t Count)
{
    unsigned char remainder=0;
    uint16_t result=0;
    while (1)
    {
        remainder=Count%10;
        result=result*10+remainder;
        Count=Count/10;
        if (Count==0)
        {
            break;
        }
        
    }
    return result;
}
方式2

也不知道是不是我弄复杂了,思路跟上面的差不都,也是取余取整,但是上面是每次乘以10,这个是从最大位数-1的10次方开始乘起,然后依次递减,但是我觉得这个方案教会我一个数的位数也是有意义的

/*效果就是算出x的y次方*/
uint16_t get_pow(uint8_t x,uint8_t y)
{
    uint16_t result=1;
    for (uint8_t i = 0; i < y; i++)
    {
        result*=x;

    }
    return result;
}
/*返回位数*/
uint8_t get_length(uint16_t count)
{
    uint8_t i;
    for (i = 0; count != 0; i++)
    {
        count/=10;
    }
    return i;
}
uint16_t Reciprocal_2(uint16_t Count,uint8_t Length)
{
    unsigned char remainder=0;
    uint16_t result=0;
    
    for (uint8_t i = Length; i > 0 ; i--)
    {
        remainder=Count%10;
        result += remainder*get_pow(10,i-1);
        Count /= 10;
    }
    return result;
}

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值