最近怎么都是用long long 我的编译器就不能运行。。。。。
这道题用long long 就过了 我的vc++6.0 用 int 就wa
#include<stdio.h>
int main(void)
{
long long int log[100000][2],num=0,i,k;
long long int n,front,rear,ans;
while(~scanf("%lld",&n))
{
front=1;rear=1;ans=1,num=0;
while(1)
{
if(front*front>n&&rear*rear>n)
break;
if(ans==n)
{
log[num][0]=front;
log[num][1]=rear;
num++;
ans-=front*front;
front++;
}
else
{
if(ans<n)
{
rear++;
ans+=rear*rear;
}
else
{
ans-=front*front;
front++;
}
}
}
printf("%lld\n",num);
for(i=0;i<num;i++)
{
printf("%lld ",log[i][1]-log[i][0]+1);
for(k=log[i][0];k<=log[i][1];k++)
printf("%lld ",k);
printf("\n");
}
}
}
本文介绍了一个利用longlong数据类型解决整数溢出问题的C语言程序实例。该程序通过动态调整前后指针的方式寻找所有可能的平方数组合,以达到指定的目标值。文中展示了完整的代码实现,并解释了为何在某些情况下使用int类型会得到错误答案。
226

被折叠的 条评论
为什么被折叠?



