Advertisement
Guest User

Untitled

a guest
Aug 25th, 2014
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. using System;
  2. using System.Numerics;
  3. using System.Text;
  4. class Program
  5. {
  6. static void Main()
  7. {
  8. int n = int.Parse(Console.ReadLine());
  9. int[] numbers = new int[n];
  10. for (int i = 0; i < n; i++)
  11. {
  12. int toAddnumber = int.Parse(Console.ReadLine());
  13. numbers[i] = toAddnumber;
  14. }
  15.  
  16. ulong L = ulong.Parse(Console.ReadLine());
  17. string LStr = UlongToString(L).PadLeft(64, '0'); ;
  18.  
  19.  
  20.  
  21.  
  22. //string LStr = Convert.ToString(L, 2).PadLeft(64,'0');
  23. char[] LChars = LStr.ToCharArray();
  24. int counterToBreak = 0;
  25. int bitsChanged = 0;
  26.  
  27. for (int i = 0; i < numbers.Length; i++)
  28. {
  29. string numBinary = Convert.ToString(numbers[i], 2);
  30. for (int k = 63; k >= 0; k--)
  31. {
  32. if (counterToBreak >= numBinary.Length*2)
  33. {
  34. break;
  35. }
  36. if (counterToBreak % 2 == 0)
  37. {
  38.  
  39. if (LChars[k] == '0')
  40. {
  41. bitsChanged++;
  42. LChars[k] = '1';
  43. }
  44. }
  45. counterToBreak++;
  46. }
  47.  
  48.  
  49. }
  50. string result = "";
  51. foreach (var digit in LChars)
  52. {
  53. result = result + digit;
  54. }
  55. Console.WriteLine(Convert.ToInt64(result, 2));
  56. Console.WriteLine(bitsChanged);
  57.  
  58. }
  59. static string UlongToString(ulong value)
  60. {
  61. int ulongsize = sizeof(ulong) * 8;
  62. StringBuilder ret = new StringBuilder(ulongsize);
  63.  
  64. for (int i = 0; i < ulongsize; i++)
  65. {
  66. ret.Insert(0, value & 0x1);
  67. value >>= 1;
  68. }
  69.  
  70. return ret.ToString();
  71. }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement