#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> int main() { int tc; scanf("%d",&tc); while(tc--)//n*(n+1)/2 { long long int n,sum=0,x,y,z,i,j; scanf("%lld",&n); sum=n; for(i=1;sum>i*(i+1)/2;i++)//减去每一堆的总数 //当不够减是,说明就在这一堆 { sum=sum-i*(i+1)/2; } for(j=1;j<sum;j++)//减掉这一堆的每一层 { sum=sum-j; } x=i; y=j; z=sum; printf("%lld %lld %lld\n",x,y,z); } return 0; } |
Double click to view unformatted code.