1 条题解

  • 0
    @ 2022-6-17 16:34:07

    C :

    #include<stdio.h>
    int main()
    {
    	long i=1,j=1,k=2,t;
    	scanf("%ld",&t);
    	while(--t)
    	{
    		if(k%2==0)
    		{
    			if(i==1)
    			{
    				j++;
    				k++;
    			}
    			else
    			{
    				i--;
    				j++;
    			}
    		}
    		else
    		{
    			if(j==1)
    			{
    				i++;
    				k++;
    			}
    			else
    			{
    				i++;
    				j--;
    			}
    		}
    	}
    	printf("%ld/%ld\n",i,j);
    	return 0;
    }
    

    C++ :

    #include<cstdio>
    int main()
    {
      int n;
      while(scanf("%d",&n)==1)//如果存在输入 
      {
         int k=1,s=0;
         for(;;)
         {
           s+=k;
           if(s>=n)//所求项是第k条对角线的倒数第s-n个元素 
           {
             printf("%d/%d\n", s-n+1,k-s+n);
             break;        
           }       
           k++;
         }                        
      }    
      return 0;
    }//数学知识,先分析,小手
    

    Pascal :

    var n,i,x,y,a:longint; 
    begin
     readln(n); 
     x:=1;y:=1; 
     i:=1;a:=1; 
     while i<=n do
      begin
       inc(i); 
       if a=1 then begin inc(x);dec(y);end
       else begin inc(y);dec(x);end; 
       if x<=1 then begin a:=1; 
        if i<=n then begin inc(i);inc(y);end;end; 
       if y<=1 then begin a:=2; 
        if i<=n then begin inc(x);inc(i);end;end; 
      end; 
     writeln(x,'/',y); 
    end. 
    
    • 1

    信息

    ID
    2989
    时间
    1000ms
    内存
    125MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者