fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. typedef unsigned int uint;
  5.  
  6. uint pow2(uint a, uint b) {
  7.  
  8. uint res = 1;
  9.  
  10. for(uint i = 1; i <= b; ++i) {
  11.  
  12. res = res * a;
  13. }
  14.  
  15. return res;
  16. }
  17.  
  18. void generate_subsets(char *str, uint dim) {
  19.  
  20. uint n = pow2(2, dim);
  21.  
  22.  
  23. for (int i = 0; i < n; ++i)
  24. {
  25. for (int j = 0; j < 3; ++j)
  26. {
  27. if(i & (1<<j)) {
  28.  
  29. printf("%c", str[j]);
  30. }
  31. }
  32.  
  33. printf("\n");
  34. }
  35.  
  36. }
  37.  
  38. int main(int argc, char const *argv[])
  39. {
  40. char *str;
  41.  
  42. str = "abc";
  43.  
  44. uint len = strlen(str);
  45.  
  46. generate_subsets(str, len);
  47.  
  48. return 0;
  49. }
Success #stdin #stdout 0s 4172KB
stdin
abc
stdout
a
b
ab
c
ac
bc
abc