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

来源:互联网 发布:java中final和static 编辑:程序博客网 时间:2024/06/05 10:24
/** * 设计一个算法: 输入一个数: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) {//向后补1divided = divided * 10 + 1;result = divided % p;n++;q = divided / p;}//打印1的个数System.out.println("乘积p*q为" + n + "个1");//将生成的另一个乘积返回return q;}





 
阅读全文
0 0