fork download
  1. f=@(n)nnz(n)<2||abs(diff(+n))&&diff(+n(1:1+end/2))==1
  2.  
  3. giza = [1
  4. 2
  5. 3
  6. 4
  7. 5
  8. 6
  9. 7
  10. 8
  11. 9
  12. 121
  13. 232
  14. 343
  15. 454
  16. 565
  17. 676
  18. 787
  19. 898
  20. 12321
  21. 23432
  22. 34543
  23. 45654
  24. 56765
  25. 67876
  26. 78987
  27. 1234321
  28. 2345432
  29. 3456543
  30. 4567654
  31. 5678765
  32. 6789876
  33. 123454321
  34. 234565432
  35. 345676543
  36. 456787654
  37. 567898765
  38. 12345654321
  39. 23456765432
  40. 34567876543
  41. 45678987654
  42. 1234567654321
  43. 2345678765432
  44. 3456789876543
  45. 123456787654321
  46. 234567898765432];
  47.  
  48. nonGiza = [11, 1221, 131, 56865, 1011121110];
  49.  
  50. giza_cell = arrayfun(@(n) num2str(giza(n)), 1:numel(giza), 'UniformOutput', false);
  51. nongiza_cell = arrayfun(@(n) num2str(nonGiza(n)), 1:numel(nonGiza), 'UniformOutput', false);
  52.  
  53. fprintf('All Giza numbers return true? %i\n', all(cellfun(@(c) all(f(c)), giza_cell)))
  54. fprintf('Any Non-Giza number return true? %i', any(cellfun(@(c) all(f(c)), nongiza_cell)))
Success #stdin #stdout 0.27s 103488KB
stdin
Standard input is empty
stdout
f =

@(n) nnz (n) < 2 || abs (diff (+n)) && diff (+n (1:1 + end / 2)) == 1

All Giza numbers return true? 1
Any Non-Giza number return true? 0