52 N的倍数

52 N的倍数

作者: 张志寿 时间限制: 2S章节: 函数

问题描述 :

明明的爸爸在研究一个复杂的数学问题,研究了很长时间都没有结果。明明看见后就问爸爸在研究什么。明明的爸爸回答说:“我在研究一个整数的倍数问题,想找到某个数的倍数……”明明还没有等他爸爸说完,就抢着说:“这不是很简单嘛,你把这个整数乘以1,乘以2,……,就能得到很多的倍数呀。”明明的爸爸当然知道这种方法,但是他接着说:“这样的方法找倍数当然容易,但是我找的倍数有一个特点,那个倍数只能由0或1组成,且应该尽量的小。例如一个自然数2,它符合要求的那个倍数就是10。”这下明明明白为什么爸爸研究了那么多时间都还没有研究出结果了,因为随着数字的增大,找到它的符合要求的倍数越来越难。明明想帮他爸爸解决这个问题,于是他来求助于你,能否帮他爸爸写一个程序,来求一个整数的倍数,倍数仅有0或1组成,且要尽可能小。 明明的问题可以归结为:任意给定一个自然数N,寻找一个M,要求M是N的倍数,且它的所有各位数字都是由0或1组成,并要求M尽可能小。

输入说明 :

你写的程序要求从标准输入设备中读入测试数据作为你所写程序的输入数据。标准输入设备中有多组测试数据,每组测试数据仅占一行,每行仅包括一个正整数N(1≤N≤100),代表要求倍数的那个整数。每组测试数据与其后一组测试数据之间没有任何空行,第一组测试数据前面以及最后一组测试数据后面也都没有任何空行。

输出说明 :

对于每一组测试数据,你写的程序要求计算出一组相应的运算结果,并将这一组运算结果作为你所写程序的输出数据依次写入到标准输出设备中。每组运算结果为一个整数,即N的倍数M。每组运算结果单独形成一行数据,其行首和行尾都没有任何空格,每组运算结果与其后一组运算结果之间没有任何空行,第一组运算结果前面以及最后一组运算结果后面也都没有任何空行。 注:通常,显示屏为标准输出设备。

输入范例 :

1
2

输出范例 :

1
10
 

#include <stdio.h>

int judge(int n)//判断是否由0,1组成
{
	while(n)
	{
		if(n%10>1)
			return 0;
		else n/=10;
	}
	return 1;
}

int main()
{
	int n,i;
	while( scanf("%d",&n) != EOF )
	{
		for(i=n;;i++)
		{
			if(!judge(i))
				continue;
			else 
				if(i%n==0)
				{
					printf("%d\n",i);
					break;
				}
		}
	}
	return 0;
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值