BC116 小乐乐改数字

(来自 牛客网 编程初学者入门训练)

1.问题:

(链接呈上:改数字

描述

小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。

输入描述:

输入包含一个整数n (0 ≤ n ≤ 10^9)

输出描述:

输出一个整数,即小乐乐修改后得到的数字。

示例1

输入:

222222

输出:

0

2.思路:

 首先 输入一个整数,根据题意,需要使用 / 和 % 以及 while循环 的配合将整数分成各个数字进行奇偶判断(()%2 是否==0),若是 奇数则令新变量为1,偶数则为0 

其次 主要的一点便是 最终数字的呈现是各个位数最后所得变量凑在一起的一个整数,所以此时需要有一个整数输出(而不是以数组形式输出!),这个整数来源于:各个位上的所得数*pow的和来呈现,而pow需要使用次方数(所在位数-1),所在位数用count记录

3.代码:

#include<stdio.h>
#include<math.h>
int main()
{
	long int n = 0;
	//printf("请输入一个整数n:");
	scanf("%ld", &n);
	//long int ret=Change(n);
	//printf("修改后结果为:");
	long int m = 0;
	long int sum = 0;
	long int ret = 0;
	float count = 0;
	while(n)//注意用while 用for需要知道整数有多少个数字组成 需要再求其
	{
		m = n % 10;//从最后一位开始
		n /= 10;
		if (0 == (m % 2))//偶数-能够被2整除 余数为0!
		{
			count++;
			 ret = 0;
			 sum += ret*(long int )(pow(10, (count - 1)));//注意组合时:不用数组 而是用指数形式计算!!
			 //pow(float x,float y)
		}
		else
		{
			count++;
			ret = 1;
			sum += ret * (long int)(pow(10, (count - 1)));
		}
	}
	printf("%ld\n", sum);
	return 0;
}

4.注意:

pow(float x, float y)  float形式,所以此题涉及强制类型转换! 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

'Dream是普通小孩耶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值