Multiply a given Integer with 3.5


Given a integer x, write a function that multiplies x with 3.5 and returns the integer result. You are not allowed to use %, /, *.

Input: 2
Output: 7

Input: 5
Output: 17 (Ignore the digits after decimal point)

1. We can get x*3.5 by adding 2*x, x and x/2. To calculate 2*x, left shift x by 1 and to calculate x/2, right shift x by 2.

#include <stdio.h>

int multiplyWith3Point5(int x)
  return (x<<1) + x + (x>>1);

/* Driver program to test above functions*/
int main()
  int x = 4; 
  printf("%d", multiplyWith3Point5(x));
  return 0;

2. Another way of doing this could be (8*x – x)/2 (See below code). Thanks to ajaym for suggesting this.

#include <stdio.h>
int multiplyWith3Point5(int x)
  return ((x<<3) - x)>>1;

Please write comments if you find the above code/algorithm incorrect, or find better ways to solve the same problem

GATE CS Corner    Company Wise Coding Practice

Please write to us at to report any issue with the above content.

Recommended Posts:

2.3 Average Difficulty : 2.3/5.0
Based on 36 vote(s)

Writing code in comment? Please use, generate link and share the link here.