十字星递归算法
十字星递归算法(OK,我也不知道这叫什么图形,姑且就叫十字星吧):
void shizixing(int starti,int temp,int endi) //starti:起始数字,temp:临时存储终止数字,endi:终止数字
{if(endi>starti){shizixing(starti,temp,--endi);int si=starti;int it=temp+starti-endi-1;while (si<=temp){printf("%d",si<it?si:it);++si;}--si;while(--si>=starti){printf("%d",si>it?it:si);}printf("\n");}else if(endi<starti){if(starti-1!=endi)shizixing(--starti,temp,endi);else --starti;int si=endi;while (si<=temp){printf("%d",si<starti?si:starti);++si;}--si;while(--si>=endi){printf("%d",si>starti?starti:si);}printf("\n");}else{shizixing(temp,temp,endi);int si=endi;while (si<=temp){printf("%d",si);++si;}--si;while(--si>=starti){printf("%d",si);}printf("\n");}
}
十字星递归算法
十字星递归算法(OK,我也不知道这叫什么图形,姑且就叫十字星吧):
void shizixing(int starti,int temp,int endi) //starti:起始数字,temp:临时存储终止数字,endi:终止数字
{if(endi>starti){shizixing(starti,temp,--endi);int si=starti;int it=temp+starti-endi-1;while (si<=temp){printf("%d",si<it?si:it);++si;}--si;while(--si>=starti){printf("%d",si>it?it:si);}printf("\n");}else if(endi<starti){if(starti-1!=endi)shizixing(--starti,temp,endi);else --starti;int si=endi;while (si<=temp){printf("%d",si<starti?si:starti);++si;}--si;while(--si>=endi){printf("%d",si>starti?starti:si);}printf("\n");}else{shizixing(temp,temp,endi);int si=endi;while (si<=temp){printf("%d",si);++si;}--si;while(--si>=starti){printf("%d",si);}printf("\n");}
}
发布评论