Skip to main content
added 154 characters in body
Source Link
att
  • 22.8k
  • 2
  • 19
  • 70

C (gcc), 114 112112 109 bytes

f(n,s){int i[19]={};for(s=n/10,n%=10;i[s]-n;n+=n>9?-9:s%10,s=i[s])i[s]=n;do printfi[s]=n;for(;printf("%d ",s);while(,i[s=i[s]]-nn;);} 

Try it online!Try it online!

-3 from ceilingcat

Includes a trailing space.

f(n,s){ int i[19]={}; //re-initialize edges uponfor each call for(s=n/10,n%=10; //initialize from input i[s]-n; //detect loop when an edge s->n repeats n+=n>9?-9:s%10,s=i[s])i[s]=n; //step do printffor(;printf("%d ",s);while(,i[s=i[s]]-nn;);  //output loop } 

C (gcc), 114 112 bytes

f(n,s){int i[19]={};for(s=n/10,n%=10;i[s]-n;n+=n>9?-9:s%10,s=i[s])i[s]=n;do printf("%d ",s);while(i[s=i[s]]-n);} 

Try it online!

Includes a trailing space.

f(n,s){ int i[19]={}; //re-initialize edges upon call for(s=n/10,n%=10; //initialize from input i[s]-n; //detect loop when an edge s->n repeats n+=n>9?-9:s%10,s=i[s])i[s]=n; //step do printf("%d ",s);while(i[s=i[s]]-n); //output loop } 

C (gcc), 114 112 109 bytes

f(n,s){int i[19]={};for(s=n/10,n%=10;i[s]-n;n+=n>9?-9:s%10,s=i[s])i[s]=n;for(;printf("%d ",s),i[s=i[s]]-n;);} 

Try it online!

-3 from ceilingcat

Includes a trailing space.

f(n,s){ int i[19]={}; //re-initialize edges for each call for(s=n/10,n%=10; //initialize from input i[s]-n; //detect loop when an edge s->n repeats n+=n>9?-9:s%10,s=i[s])i[s]=n; //step for(;printf("%d ",s),i[s=i[s]]-n;);  //output loop } 
minor commentary edit; deleted 11 characters in body
Source Link
att
  • 22.8k
  • 2
  • 19
  • 70

C (gcc), 114114 112 bytes

f(n,s){int i[19]={};for(s=n/10,n%=10;i[s]-n;n+=n>9?-9:s%10,s=i[s])i[s]=n;do printf("%d ",s),s=i[s];while;while(i[s]i[s=i[s]]-n);} 

Try it online!Try it online!

Includes a trailing space.

f(n,s){ int i[19]={}; //re-initialize foredges eachupon inputcall for(s=n/10,n%=10; //initialize inputfrom valuesinput i[s]-n; //detect loop when an edge s->n repeats n+=n>9?-9:s%10,s=i[s])i[s]=n; //step do printf("%d ",s),s=i[s];while;while(i[s]i[s=i[s]]-n);  //output loop } 

C (gcc), 114 bytes

f(n,s){int i[19]={};for(s=n/10,n%=10;i[s]-n;n+=n>9?-9:s%10,s=i[s])i[s]=n;do printf("%d ",s),s=i[s];while(i[s]-n);} 

Try it online!

Includes a trailing space.

f(n,s){ int i[19]={}; //re-initialize for each input for(s=n/10,n%=10; //initialize input values i[s]-n; //detect loop when an edge s->n repeats n+=n>9?-9:s%10,s=i[s])i[s]=n; //step do printf("%d ",s),s=i[s];while(i[s]-n); //output loop } 

C (gcc), 114 112 bytes

f(n,s){int i[19]={};for(s=n/10,n%=10;i[s]-n;n+=n>9?-9:s%10,s=i[s])i[s]=n;do printf("%d ",s);while(i[s=i[s]]-n);} 

Try it online!

Includes a trailing space.

f(n,s){ int i[19]={}; //re-initialize edges upon call for(s=n/10,n%=10; //initialize from input i[s]-n; //detect loop when an edge s->n repeats n+=n>9?-9:s%10,s=i[s])i[s]=n; //step do printf("%d ",s);while(i[s=i[s]]-n);  //output loop } 
Source Link
att
  • 22.8k
  • 2
  • 19
  • 70

C (gcc), 114 bytes

f(n,s){int i[19]={};for(s=n/10,n%=10;i[s]-n;n+=n>9?-9:s%10,s=i[s])i[s]=n;do printf("%d ",s),s=i[s];while(i[s]-n);} 

Try it online!

Includes a trailing space.

f(n,s){ int i[19]={}; //re-initialize for each input for(s=n/10,n%=10; //initialize input values i[s]-n; //detect loop when an edge s->n repeats n+=n>9?-9:s%10,s=i[s])i[s]=n; //step do printf("%d ",s),s=i[s];while(i[s]-n); //output loop }