Advertisement
petromaxa

Untitled

Dec 11th, 2012
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace _4.Problem_BinaryDigitsCount
  7. {
  8. class Program
  9. {
  10. public static uint NumberOfBits(uint i)
  11. {
  12. uint numberOfBits = 0;
  13. while (true)
  14. {
  15. i = i / 2;
  16. numberOfBits++;
  17. if (i == 0)
  18. {
  19. break;
  20. }
  21. }
  22. return numberOfBits;
  23. }
  24. static void Main()
  25. {
  26. uint mask = 0;
  27. bool IsNCorrect = true;
  28. uint B = uint.Parse(Console.ReadLine());
  29. uint N = uint.Parse(Console.ReadLine());
  30. uint[] numbers = new uint[N];
  31. uint[] numberOfB = new uint[N];
  32. for (uint i = 0; i < N; i++)
  33. {
  34. numbers[i] = uint.Parse(Console.ReadLine());
  35. if (numbers[i] < 1 || numbers[i] > 4000000000)
  36. {
  37. IsNCorrect = false;
  38. }
  39. }
  40. if (N > 0 && N < 1001 && IsNCorrect && (B == 0 || B == 1))
  41. {
  42. for (uint i = 0; i < N; i++)
  43. {
  44. uint numberOfbits = NumberOfBits(numbers[i]);
  45. for (uint bit = 0; bit < numberOfbits; bit++)
  46. {
  47. if (B == 1)
  48. {
  49. mask = B << (int)bit;
  50. if ((numbers[i] & mask) == (B << (int)bit))
  51. {
  52. numberOfB[i]++;
  53. }
  54. }
  55. else //B==0
  56. {
  57. mask = (uint)1 << (int)bit;
  58. mask = ~mask;
  59. if ((numbers[i] | mask) == mask)
  60. {
  61. numberOfB[i]++;
  62. }
  63. }
  64.  
  65. }
  66. }
  67. for (int i = 0; i < N; i++)
  68. {
  69. Console.WriteLine(numberOfB[i]);
  70. }
  71. }
  72. else
  73. {
  74. Console.WriteLine("Wrong entry!");
  75. }
  76. }
  77. }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement