/**
* 设计一个算法: 输入一个数: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;
}