Sie sind auf Seite 1von 3

comp.lang.

c++: Re: Programming Puzzle

Re: Programming Puzzle

Source: http://coding.derkeiler.com/Archive/C_CPP/comp.lang.cpp/2004−06/4120.html

From: Prateek R Karandikar (kprateek88_at_yahoo.com)


Date: 06/27/04

Date: 27 Jun 2004 12:47:55 −0700

jsfromynr@sancharnet.in (Jatinder) wrote in message


news:<22b2a6b6.0406261016.510e693b@posting.google.com>...
> I found these questions on a web site and wish to share with all of u
> out there,Can SomeOne Solve these Porgramming puzzles.

The topic of this groups is Standard C++. Where C is mentioned, I will


interpret it after replacing it with C++.
>
> Programming Puzzles
>
> Some companies certainly ask for these things. Specially Microsoft.
> Here are my favorite puzzles. Don't send me emails asking for the
> solutions.
>
> Q1 Write a "Hello World" program in 'C' without using a semicolon.
Use a universal−character name to denote the semicolon, or use #error,
if outputing at compile time is acceptable.

> Q2 Write a C++ program without using any loop (if, for, while etc) to
> print numbers from 1 to 100 and 100 to 1;
#include<iostream>
int main()
{
cout<<"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
93 94 95 96 97 98 99 100 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86
85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63
62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40
39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1"<<endl;
}
> Q3 C/C++ : Exchange two numbers without using a temporary variable.
Assuming that a and b are ints and ((&a)!=(&b))
a^=b;b^=a;a^=b;

Re: Programming Puzzle 1


comp.lang.c++: Re: Programming Puzzle
> Q4 C/C++ : Find if the given number is a power of 2.
Keep generating powers of 2 till one equals (Ans: yes) or exceeds
(Ans: no) the given number.
> Q5 C/C++ : Multiply x by 7 without using multiplication (*) operator.
x+x+x+x+x+x+x
> Q6 C/C++ : Write a function in different ways that will return f(7) =
> 4 and f(4) = 7
The expression f(7)=4 calls f with the argument 7, assigns 4 to the
lvalue returned, and evaluates to that lvalue. Assuming that you want
this function to return int.
int foo()
{
//0;
//To write this func. in a diff. way, remove "//" from the above
line
if(some_condition)
return(f(7)=4);
return(f(4)=7);
}

The question said a function that returns foo and bar, which I have
changed to a function that returns foo in certain cases and bar in
other, as a function returns only one object in a call.

> Q7 Remove duplicates in array


Array elements cannot be "removed".
> Q8 Finding if there is any loop inside linked list.
> Q9 Remove duplicates in an no key access database without using an
> array

If this can be done using arrays, do it in the same way using


std::vector instead of arrays.

> Q10 Write a program whose printed output is an exact copy of the
> source. Needless to say, merely echoing the actual source file is not
> allowed.
> Q11 From a 'pool' of numbers (four '1's, four '2's .... four '6's),
> each player selects a number and adds it to the total. Once a number
> is used, it must be removed from the pool. The winner is the person
> whose number makes the total equal 31 exactly.

And the programming exercise is?

> Q12 Swap two numbers without using a third variable.


See the ans to Q3
> Given an array (group) of numbers write all the possible sub groups of
> this group.
> Q14 Convert (integer) number in binary without loops.
If by "convert (integer) number in binary" you mean to output the
number in binary form,

Re: Programming Puzzle 2


comp.lang.c++: Re: Programming Puzzle
#include<bitset>
#include<climits>
#include<iostream>
int main()
{
int x;
cin>>x;
bitset<CHAR_BIT*sizeof(unsigned long)> a(x);
cout<<a<<endl;
}

>
> Q3,12 are similar , Q7 is simple & I know there answer For the Rest
> please Help
>
>
> Wiating for reply.

−− −−
Abstraction is selective ignorance.
−Andrew Koenig
−− −−

Re: Programming Puzzle 3