zoukankan      html  css  js  c++  java
  • hdu 1597

    这一题摔的有点惨,为嘛?首先是题目看错了,还以为是数据范围的问题,改成__int64,总共wa了两次,在仔细看题目,汗……我应该取模的,好吧,取了模,还是Wa了,额……怎么了,网上翻了别人的代码,哦哦,数据范围有问题,刚才改的时候,又改回成int了,好了,a了。其实这一题蛮简单的,就是找规律……

    #include "stdio.h"
    #include "math.h"

    int main()
    {
     int T;
     __int64 n,k;

     scanf("%d",&T);
     while(T--)
     {
      scanf("%I64d",&n);

      k=(__int64)sqrt(2.0*n);

      if((k+1)*k>=2*n)//就是根据一行的末尾的数,然后确定范围的,(k+1)*k/2==n,开方确定k值的范围,再和n比较就行了,修正一下k值
       k--;

      printf("%I64d\n",(n-(k+1)*k/2)%9==0?9:(n-(k+1)*k/2)%9);
     }

     return 0;
    }

  • 相关阅读:
    可持续化线段树(主席树)
    2016-06-19 NOIP模拟赛
    0618图的整理
    1536 海战
    1005 生日礼物
    3280 easyfinding
    2594 解药还是毒药
    2919 选择题
    1845 二叉查找树
    1174 靶形数独
  • 原文地址:https://www.cnblogs.com/Shirlies/p/2358218.html
Copyright © 2011-2022 走看看