实验3 循环语句(1)
一,实验目的
1.掌握循环语句for语句,while语句,do-while语句的使用;
2.通过编程,了解结构化的程序设计方法。
二,实验要求
1.通过阅读程序,了解循环语句的结构特点;
2.掌握循环语句的基本语法:枚举法,递归法和迭代法;
3.掌握利用常用算法拆分数字。
三,实验
S3_1.cpp
程序是求解鸡兔同笼问题。鸡兔空有30只,脚共有90只,问鸡兔各有多少只?
#include<iostream>
using namespace std;
int main(void)
{
int x,y;
for(x=1;x<30;x++)
for(y=1;y<30;y++)
if(2*x+4*y==90&&x+y==30)
{
cout<<"the chicken have"<<x<<'\t'<<"rabbit have"<<y<<endl;
}
return 0;
}
S3_2.cpp
输出所有的水仙花数。水仙花数是一位三位数,其各位数字的立方等于该数本身。例如,153=13+53+3^3
#include<iostream>
using namespace std;
int main(void)
{
int a0,a1,a2;
int b;
for(a2=1;a2<=9;a2++)
for(a1=1;a1<=9;a1++)
for(a0=1;a0<=9;a0++)
{b=a2*100+a1*10+a0;
if(b==a0*a0*a0+a1*a1*a1+a2*a2*a2)
cout<<b<<'\t';
}
return 0;
}
S3_3.cpp
题目同上
#include <iostream>
using namespace std;
int main (void)
{
int x,i,j,k;
for(x=100;x<=999;x++)
{
i=x/100;
j=(x/10)%10;
k=x%10;
if(x==i*i*i+j*j*j+k*k*k)
cout<<x<<" "<<endl;
}
return 0;
}
S3_4.cpp
题目要求:写出1-599中能被3整除,且至少有一位数为5的所有整数。如15,51,513均是满足条件的整数
#include<iostream>
using namespace std;
int main()
{
int n,i,j,k,count=0;
for(n=1;n<=599;n++)
{
i=n/100;
j=n/10%10;
k=n%10;
if(n%3==0&&(i==5||j==5||k==5))
{
cout<<n<<'\t';
count=count++;
if(count%5==0)
cout<<endl;
}
}
return 0;
}
S3_5.cpp
题目:编写一个程序,输入一个整数,求出该整数的各位数字之和
#include<iostream>
using namespace std;
int main(void)
{
int n=0,b,a=0;
cout<<"请输入数字"<<endl;
cin>>n;
while(n)
{
b=n%10;
n=n/10;
a+=b;
}
cout<<a<<endl;
return 0;
}
将正整数剥分为n个独立的数字
代码实现
while(n)
{
b=n%10; //b初始值为n的个位数,随着循环迭代,依次为n的十位数,百位数... ...
n=n/10; //每当n剥完低位数后,将这低位数去掉继续迭代,直到n为0时停止循环
}
枚举法,递归法和迭代法
枚举法:逐个考察了某类事件的所有可能情况
迭代法:迭代法也被称为辗转法,是一种不断用变量的旧值递推新值的过程,在解决问题时总是重复利用一种方法。
2011/11/12
大一下学的C++,课程名称叫VC++刚开始很好奇为什么叫VC++。搜索了一下,“VC++可以简单的视为 C++语言+微软扩展的语法规则+微软扩展的功能特性+微软自己开发的编译环境+windows操作系统 的一个混杂的复合体”。总之用处很大。不过到后面逐渐发现对其不感什么兴趣了。可能是没用经常用到。现在在学python。这个较好学。只需要良好的思维逻辑。不必太纠结语法细节。也打算写博客,记录一下学习python的过程。