7-3 逆序的三位数 (10 分)(C and Java)

程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

输入格式:
每个测试是一个3位的正整数。

输出格式:
输出按位逆序的数。

输入样例:
123
输出样例:
321
C代码如下:

#include<stdio.h>
int main()
{
    int num1, b;
    int num2=0,w=100;
    //w为权重,num1,num2分别为输入值和输出值,b为临时变量可以略去
    scanf("%d", &num1);
        for (int i=1; i<=3; i++)
        {
            //int/int=int;
            b = num1 % 10;//取出个位
            num2 += b*w;//将个位按权筑位组合成逆序数
            //可将w换成e而略去w/=10;语句
            num1 /= 10;
            w/=10;//数值位置变小一位eg:百位到十位权值缩小10倍
        }
            printf("%d", num2);
    return 0;
}
// int e(int num,int e)//求num的e次方
// {
//     int output=1;
//     for(int i=1;i<=e;i++)
//     {
//         output *= num;
//     }
//     return output;
// }

用判断语句用时及内存占用情况
在这里插入图片描述

在这里插入图片描述
将代码做微调观察用时及内存占用情况,
注:运行速度及内存占用情况变化仅适用于此程序;
目前对运行机制还不够了解,观察在此题中判断语句速度最快,但用内存最大。

Java:

import java.util.Scanner;
class Main
{
	public static void main(String[] args)
	{
		Scanner in = new Scanner(System.in);
		int num = in.nextInt();
		int result = 0;
		while(num!=0)
		{
			int x = num % 10;
			result = result * 10 + x; 
			num /= 10;
		}
		System.out.println(result);
	}
}

在这里插入图片描述
可以看到Java耗时较高,内存占用相较大了许多,这与语言的内存回收机制有一定的关系,在后续的笔记中会进行相应的梳理。
在这种题中Java和C语言所用方法类似,自己会刻意想要让不同语言有不同的做法,不过往往导致自己无法下手。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值