C/c++语言int的取值范围
我们常常看到int取值范围为-32768~32767,实际上int的取值范围依赖于计算机系统,在16位机器中,int占16位,其中一位为符号位,所以取值范围为前面所说的-32768~32767(-215~215-1)。
而在32位和64位机器中,int占32位,取值范围为-2147483648~2147483647(-2^31~2^31-1)。ISO/ANSI C规定,int类型的最小范围为-32768到32767。
现在电脑一般都是64位的,所有不需要使用long long 数据类型了,int 就够了。
最小的9位数123456789 开方大概11111,最多的9位数987654321,开方大概31426
#include<iostream>
using namespace std;
int main()
{
int a[10],x;
int k;
for(x=11111;x<31426;x++)
{
for(int i=0;i<=9;i++)a[i]=0;
int count=0,flag=1,j;
k=x*x;
while(k)
{
int temp=k%10;
if(a[temp]||temp==0)break;
a[temp]=1;
k=k/10;
}
if(k==0)cout<<x<<"*"<<x<<"="<<x*x<<endl;
}
return 0;
}
自己搞了半天,没有搞定,看看别人的代码,写的真精简
if(a[temp]||temp==0)break; 这句好,及剪枝叶了,有判断了有没有除到最后。