Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import std.stdio;
- import std.conv;
- char[] prefix;
- void incprefix(){
- char* c=&prefix[$-1];
- char* d=&prefix[0];
- loop:
- if(c<d){goto error;}
- if(*c=='9'){
- *c='0'; c--;
- goto loop;
- }
- (*c)=cast(char)((*c)+1);
- return;
- error:
- prefix.length+=1;
- prefix[0]='1';
- foreach(ref c_;prefix[1..$]){
- c_='0';
- }
- }
- int fizzbuzzcase(int i){
- if(i%15==0){return 0;}
- if(i%3==0){return 1;}
- if(i%5==0){return 2;}
- return 3;
- }
- void printint(int c:3,int i,bool keepzeros:false)(){
- prefix.write;
- enum string s=(i%100).to!string;
- s.writeln;
- }
- void printint(int c:3,int i,bool keepzeros:true)(){
- prefix.write;
- enum string s=(i%100+100).to!string[1..$];
- s.writeln;
- }
- void printint(int c,int i,bool b)(){}
- void print(int i:0)(){
- "fizzbuzz".writeln;}
- void print(int i:1)(){
- "fizz".writeln;}
- void print(int i:2)(){
- "buzz".writeln;}
- void print(int i:3)(){}
- void main(){
- static foreach(i;1..100){ {
- enum c=fizzbuzzcase(i);
- printint!(c,i,false);
- print!c;
- } }
- prefix=['1'];
- loop:
- static foreach(i;100..400+1){ {
- enum c=fizzbuzzcase(i);
- printint!(c,i,true);
- print!c;
- if(i==200 ||i==300){
- incprefix;
- }
- } }
- goto loop;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement