平方数的构建
来源:互联网 发布:豆瓣8组 知乎 编辑:程序博客网 时间:2024/05/01 12:43
这是之前师兄问我的面试题,
要求求出1,2,3,4,位数的平方数,组成每一位各不相同的十位数
我用较直观的方法写出的程序,但是效率不是很高,
不过对付1000内的数是绰绰有余了~
情况表达:
1 36 784 9025
9 16 784 3025
9 81 324 7056
9 81 576 2304
所以一共有 4 种
//------------------------------------------------------------------
// FileName : 平方数的构建.cpp
// Creator : 焦祺
// DateTime : 2009-3-8 12:20:10
// Comment : 一次性编程,或显粗糙
//------------------------------------------------------------------
#include <iostream>
#include <cstring>
using namespace std;
//a[N][]存放位数为N的平方数
int a[5][80] = {0};
int b[5];
int main()
{
int i,j,k,n,m,t,len,counter=0;
int j1,j2,j3,j4;
j1 = j2 = j3 = j4 = 0;
int k1,k2,k3,k4;
k1=k2=k3=k4=0;
char temp[5];
for (i=1;i<100;i++)
{
itoa(i*i,temp,10);
len = strlen(temp);
// printf("%d ",len);
//对位存入
if(len == 1)
{
a[len][j1] = i*i;
j1++;
}
else if (len == 2)
{
a[len-1][j1] = -1; //标记最后一位,可能会用到
a[len][j2] = i*i;
j2++;
}
else if (len == 3)
{
a[len-1][j2] = -1; //做标记,可能会用到
a[len][j3] = i*i;
j3++;
}
else
{
a[len-1][j3] = -1; //做标记,可能会用到
a[len][j4] = i*i;
j4++;
}
}
a[len -1][j4] = -1; //做标记,可能会用到
cout<<"一位数的平方数有:"<<j1<<endl;
cout<<"二位数的平方数有:"<<j2<<endl;
cout<<"三位数的平方数有:"<<j3<<endl;
cout<<"四位数的平方数有:"<<j4<<endl<<endl;
//有3*6*22*68种可能
cout<<"情况表达:"<<endl;
int f[10];
for (k1=0;k1<j1;k1++) //kn表示遍历N位时的情况
{
for (k2=0;k2<j2;k2++)
{
for (k3=0;k3<j3;k3++)
{
for (k4=0;k4<j4;k4++)
{
memset(f,0,sizeof(f)); //HASH
for (k=1;k<=4;k++) //4种情况选某一种
{
if(k == 1) //查看选有几位的数
j = k1;
else if (k == 2)
{
j = k2;
}
else if (k == 3)
{
j = k3;
}
else if (k == 4)
{
j = k4;
}
itoa(a[k][j],temp,10); //转为字符型
b[k] = a[k][j]; //记录可能的情况
for (i=0;i<strlen(temp);i++)
{
if (f[temp[i]-'0'] == 0)
{
f[temp[i]-'0'] = 1; //类似HASH标记
}
else
{
break;
}
}
if (i != strlen(temp)) //判断for里是否中途跳出了,如果是则跳出
{
break;
}
}
if (k==5) //如是没有中途跳出
{
counter++;
for (t=1;t<=4;t++)
cout<<b[t]<<" ";
cout<<endl;
}
}
}
}
}
cout<<"所以一共有 "<<counter<<" 种"<<endl;
return 0;
}
- 平方数的构建
- 平方数的判断
- 平方数的研究
- 一个数的平方
- 求一个数的平方
- 无平方因子的数
- 蓝桥杯样题---有趣的平方数
- 连续和的平方数
- 平方数的约数个数
- 完全平方数的个数
- 完全平方数的个数
- 特殊的完全平方数
- 完全平方数的性质
- "反复平方"——快速计算一个数的平方
- 平方数
- 平方数
- 平方数
- 平方数
- Windows DLL编程中的导入:__declspec(dllimport)
- RMI简介、实现与注意事项
- Hibernete基础教程读书笔记(3-1)
- VS2005 Gridview中的各列如何居中显示?
- MySQL 5.0新特性教程 存储过程:第一讲
- 平方数的构建
- MySQL 5.0 新特性教程 存储过程:第二讲
- Javascript 实现无刷新联动菜单(select)的方法
- 举例讲解returnValue的含义
- MySQL 5.0 新特性教程 存储过程:第三讲
- MySQL 5.0 新特性教程 存储过程:第四讲
- adoquery filter使用
- 用Spring来管理filter
- Pocket PC/Smartphone软件安装包之制作DIY (zhuan)