import java.util.*; public class Main { public static void main(String[] args){ Scanner input=new Scanner(System.in); int n=input.nextInt(); input.nextLine(); for(int i=0;i<n;i++){ String[] s = input.nextLine().split(" "); int A=Integer.parseInt(s[0]); int B=Integer.parseInt(s[1]); int p=Integer.parseInt(s[2]); int q=Integer.parseInt(s[3]); System.out.println(count(A,B,p,q,0)); } } private static int count(double A,double B,double p,double q,int num){ if(B-A<=p) return num+1; else if((B-A)/p<=q) return num+2; else { return count(A,B,p*q*q,q,num+2); } } }
var T = parseInt(readline()); while (T--) { var arr = readline().split(" ") var A = parseInt(arr[0]); var B = parseInt(arr[1]); var p = parseInt(arr[2]); var q = parseInt(arr[3]); print(test(A, B, p, q)) } function test(A,B,p,q){ var index = 0; while(A<B){ if(q==1){ A = A+p; }else{ if(A+p<B){ p=p*q; }else{ A=A+p; } } index++; } return index; }
function test (a, b, p, q) { returnMath.ceil(Math.log(((b - a) / p)) / Math.log(q)) + 1 } let linenum = parseInt(readline()) for(let i = 0; i < linenum; i++){ let cur = readline().split(' ').map(Number) print(test(cur[0], cur[1], cur[2], cur[3])) }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String temp=in.nextLine(); int num=Integer.parseInt(temp); int stop=1; while(stop<=num){ stop++; temp=in.nextLine(); String [] temps=temp.split(" "); long []nums=new long[temps.length]; for(int i=0;i<temps.length;i++) { nums[i] = Long.parseLong(temps[i]); } long A=nums[0]; long B=nums[1]; long p=nums[2]; long q=nums[3]; int time=1; while (A+p<B){ time++; p=p*q; } System.out.println(time); } } }
using System; using System.Collections; using System.Collections.Generic; using System.Text; public class Program { public static void Main(string[] args) { int T = int.Parse(Console.ReadLine()); for(int k = 0; k < T; ++k) { string[] ipts = Console.ReadLine().Split(' '); long A = long.Parse(ipts[0]); long B = long.Parse(ipts[1]); long p = long.Parse(ipts[2]); long q = long.Parse(ipts[3]); Console.WriteLine(GetTime(A, B, p, q)); } } public static long GetTime(long A, long B, long p, long q) { long time = 0; while(A + p < B) { p *= q; ++time; } return time + 1; } }
package test; import java.util.Scanner; /** * @author Mr.Zhao * @version 1.0 * @Description: * @date 2020/1/5 10:48 */ public class Test02 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int i = scanner.nextInt(); long[][] arrInt = new long[i][4]; scanner.nextLine(); for (int i1 = 0; i1 < i; i1++) { String str = scanner.nextLine(); String[] arrString = str.split("\\s"); for (int i11 = 0; i11 < 4; i11++) { arrInt[i1][i11] = Long.parseLong(arrString[i11]); } } for (int j = 0; j < i; j++) { int number = 0; outterLoop:for (int k = 0; k < 4; k++) { if (arrInt[j][0] >= arrInt[j][1]) { System.out.println(number); number = 0; } else { while (arrInt[j][0] <= arrInt[j][1]) { long m = arrInt[j][0] + arrInt[j][2]; long n = arrInt[j][2] * arrInt[j][3]; if (m >= arrInt[j][1]) { System.out.println(++number); break outterLoop; }else { if ((2 * arrInt[j][2]) <= n) { arrInt[j][2] = n; number++; } else { arrInt[j][0] = m; number++; } } } } } } } }
import math nums = input('请输入A,B,p,q') list2 = nums.split(' ') #以空格切割 list1 = list(map(int,list2)) #转为int类型 A = list1[0] B = list1[1] p = list1[2] q = list1[3] a = A - B if a<=p: b = 1 else: if q <= 1: b = math.ceil(a/p) #向上取整 else: b = math.ceil(math.log(a/p,q))+1 #取以q为底a/p的对数 print('最少%d次操作使得B<=A'%b) #格式化输出
let n = parseInt(readline()); for (let i = 0; i < n; i++) { let arr = readline().split(" ").map(Number); let res = f(arr); console.log(res); } function f(arr) { // 只有当a + p >= b时,才值得让a = a + p let a = arr[0]; let b = arr[1]; let p = arr[2]; let q = arr[3]; let count = 0; while (a < b) { if (a + p >= b) { a = a + p; } else { p = p * q; } count++; } return count; }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int group = sc.nextInt(); for (int i = 0; i < group; i++) { long[] arr = new long[4]; for (int j = 0; j < 4; j++) { arr[j] = sc.nextLong(); } long A = arr[0]; long B = arr[1]; long p = arr[2]; long q = arr[3]; int count = 1; while (A + p < B) { count++; p = p * q; } System.out.println(count); } } }
def opCount(A, B, p, q): if A >= B: return 0 if A + p >= B: return 1 return 1 + opCount(A, B, p*q, q) T = int(input()) alist = [] for _ in range(T): temp = [int(i) for i in input().split()] alist.append(temp) for sub_list in alist: A, B, p, q = sub_list print(opCount(A, B, p, q))
let n=readline(); let input=[]; for(let i=0;i<n;i++){ input.push(readline().split(' ').map(item=>parseInt(item))); } let f=(a,b,p,q)=>{ let i=0; let A=a; let P=p; while(A<b){ i++; if(A+P>=b){ return i; }else{ P*=q; } } } for(let i=0;i<n;i++){ console.log(f(...input[i])) }
import java.util.*; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); int cnt; sc.nextLine(); for(int i = 0; i < T; i++) { long A = sc.nextInt(); long B = sc.nextInt(); long p = sc.nextInt(); long q = sc.nextInt(); cnt = 0; while(A < B) { if(A + p >= B) { A = A + p; } else { p = p * q; } cnt++; } System.out.println(cnt); } } }
const readline = require('readline') const rl = readline.createInterface({ input: process.stdin, output: process.stdout }) const input = [] rl.on('line', line => { input.push(line) const maxline = parseInt(input[0]) if (input.length === maxline + 1) { handleInput(input) rl.close() } }) function handleInput(input) { const maxline = parseInt(input.shift()) for (let i = 0; i < maxline; i++) { let arr = input[i].split(' ') arr = arr.map(item => parseInt(item)) doubleSize(arr) } } function doubleSize(arr) { let [A, B, p, q] = arr let count = 0 while (B > A) { if (A + p >= B) { A = A + p } else { p = p * q } count += 1 } console.log(count); }