乘数探求:积为若干个1构成

 
/**
	 * 设计一个算法: 输入一个数:p 系统匹配一个数:q 使得p*q的结果为n个1 
		条件: 输入的那个数不能为偶数和5 
		思路:
	 * 		本次算法使用逆向思维,先定义一个被除数divided(初始值为1)用于进行试商 
	 * 	然后进行判断:divided % p == 0?
		如果等于0,则满足条件,该divided的值就是1
	 * 的个数,q就是系统匹配的那个数,否则就讲divided= divided*10+1(向后补1)
	 * 
	 * @author evan_qb
	 * @param p 为输入的那个数
	 */
		
public static int getOne(int p) {
		if (p % 2 == 0 && p % 10 == 5) {
			System.out.println("该乘积不存在");
			return -1;
		}
		// 判断是否存在的值
		int result = 1;
		//系统所生成的另一个乘数
		int q = 0;
		// 定义初始值
		int divided = 1;
		//用于统计1的个数
		int n = 1;
		while (result != 0) {
			//向后补1
			divided = divided * 10 + 1;
			result = divided % p;
			n++;
			q = divided / p;
		}
		//打印1的个数
		System.out.println("乘积p*q为" + n + "个1");
		//将生成的另一个乘积返回
		return q;
	}











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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值