joj 1753: Street Numbers

http://acm.jlu.edu.cn/joj/showproblem.php?pid=1753

这道题目的一个思路是采用二分的思想进行枚举,然后打表即可,C代码如下:

 1 #include <stdio.h>
 2 #define max 0x7fffffff
 3 
 4 int main()
 5 {
 6     long long i,j,cnt=0;
 7     for(i=6;;i++)
 8     {
 9         j = i;
10         long long k = i*i+i*i;
11         long long low = i,high = max;
12         while(low<=high)
13         {
14             long long mid = (low+high)/2;
15             long long temp = mid*mid+mid;
16             if(temp==k)
17             {
18                 printf("%lld,%lld\n",i,mid);
19                 cnt++;
20                 if(cnt==10)goto aa;
21                 break;
22             }
23             else if(temp>k)
24                 high = mid-1;
25             else low = mid+1;
26         }
27         j++;
28     }
29 aa:    return 0;
30 }
原文地址:https://www.cnblogs.com/laohaizi/p/2733747.html