算法竞赛入门经典 2.1 for 循环

//程序2-1 输出1,2,3,……n的值
#include<iostream>
using namespace std;

int main()
{
	int i,n;
	cin>>n;
	for(i=1;i<=n;i++)
		cout<<i<<endl;
	return 0;
}


//aabb为完全平方数(即前两位相同,后两位相同)
//程序2-2 7744问题(1)
#include<iostream>
#include<cmath>
using namespace std;

int main()
{
	int a,b;
	double n;
	double m;
	for(a=1;a<=9;a++)	//两重循环
		for(b=0;b<=9;b++)
		{
			n=a*1100+b*11;			
			m=sqrt(n);			//求开方
			if(floor(m+0.5)==m) //floor(x)函数返回x的整数部分
				cout<<n<<endl;
		}
	return 0;
}

//程序2-3 7744问题(2)
#include<iostream>
using namespace std;

int main()
{
	int x,n,hi,lo;
	for(x=1; ;x++)
	{
		n=x*x;
		if(n<1000) continue;		//跳回for循环的开始
		if(n>9999) break;			//直接跳出循环
		hi=n/100;
		lo=n%100;
		if(hi/10 ==hi%10 && lo/10==lo%10)	//hi的商和余数相同,lo的商和余数相同
			cout<<n<<endl;
	}
	return 0;
}

posted on 2012-03-25 19:27  1.曲待续  阅读(164)  评论(0编辑  收藏  举报

导航