零教授吧 关注:308贴子:8,126
  • 16回复贴,共1

琪露诺算数的程序实现

只看楼主收藏回复

#include<iostream>
using namespace std;
static int stack[1000];
int top=0;
void push(int a)
{
if(a==3)
stack[top]=9;
else stack[top]=a;
top++;
}
int pop()
{
top--;
if(top<0)return -1;
cout<<stack[top];
return 1;
}
int main(void)
{
int n;
cout<<"input n,and we can translate it to Cirno\n";
cin>>n;
while(n!=0)
{
push(n%4);
n=n/4;
}
cout<<"this is cirno's n:"
while(pop())
;
return 0;
}


来自Android客户端1楼2013-11-23 23:06回复
    输入一个数,转换为Cirno进制(0,1,2,9)


    来自Android客户端2楼2013-11-23 23:08
    回复
      怎么和我学的不一样


      IP属地:德国来自Android客户端3楼2013-11-24 00:02
      回复
        你为何不使用std::stack


        IP属地:山东4楼2013-11-25 11:53
        收起回复
          我来演示一下怎么写比较快
          #include<stdio.h>
          void main()
          {
          unsigned int n,a,b=3221225472;
          printf("input n,and we can translate it to Cirno\n");
          scanf("%u",&n)
          printf("this is cirno's n:");
          for(i=15;i>=0;i--)
          {
          a=(n&b)>>(2*i);
          printf("%u",(a==3)?9:a);
          b=b>>2;
          }
          }


          IP属地:山东5楼2013-11-25 21:03
          收起回复
            改一下
            #include<stdio.h>
            void main()
            {
            unsigned int n,i,a,b=3221225472;
            printf("input n,and we can translate it to Cirno\n");
            scanf("%u",&n);
            printf("this is cirno's n:");
            for(i=16;i>=1;i--)
            {
            a=(n&b)>>(2*i-2);
            printf("%1u",(a==3)?9:a);
            b=b>>2;
            }
            }


            IP属地:山东6楼2013-11-29 18:19
            回复
              ansi C的main函数规范需要int类型,而且要return 0的


              来自Android客户端7楼2013-11-29 19:17
              回复
                这个居然煤精!!!!!!!


                IP属地:福建8楼2013-11-29 21:33
                回复
                  点~归零


                  IP属地:浙江9楼2013-11-30 22:58
                  回复