1.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
#include<iostream>
#include<string.h>
using namespace std;
int tolnum(int day){
if(day==1||day==2){
return 1;
}
else{
return tolnum(day-1)+tolnum(day-2);
}
}
int main(){
int i;
for(i=1;i<=40;i++){
cout<<i<<' '<<tolnum(i)<<'\n';
cout<<endl;
}
return 0;
}
运行结果
2.打印99乘法表
#include<iostream>
#include<string.h>
using namespace std;
int main(){
int i,j,r;
for(i=1;i<10;i++){
for(j=1;j<i;j++){
cout<<i<<'*'<<j<<'='<<i*j<<'\t';
}
cout<<endl;
}
return 0;
}
3.要求输出国际象棋棋盘。
#include<stdio.h>
int main()
{
int i,j;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
if((i+j)%2==0)
printf("%c%c",219,219);
else printf(" ");
printf("\n");
}
return 0;
}
4.古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
#include<iostream>
#include<string.h>
using namespace std;
int tolnum(int day){
if(day==1||day==2){
return 1;
}
else{
return tolnum(day-1)+tolnum(day-2);
}
}
int main(){
int i;
for(i=1;i<=40;i++){
cout<<i<<' '<<tolnum(i)<<'\n';
cout<<endl;
}
return 0;
}
5.判断 101 到 200 之间的素数
判断素数的方法:如果i不能被2~√i间任一整数整除,i必定是素数
#include<iostream>
#include<string.h>
using namespace std;
#include<math.h>
int main(){
int i,j;
for(i=101;i<=200;i++){
for(j=2;j<=sqrt(i);j++){
if(i%j==0)
break;
}
if(j>sqrt(i))
cout<<i<<endl;
}
return 0;
}
6.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
#include<iostream>
#include<string.h>
using namespace std;
#include<math.h>
int main(){
int x,y,z,i;
for(i=100;i<1000;i++){
x=i%10;
y=i/10%10;
z=i/100%10;
if(i==x*x*x+y*y*y+z*z*z){
cout<<i<<endl;
}
}
return 0;
}
7.将一个正整数分解质因数
(1)如果这个质数恰等于(小于的时候,继续执行循环)n,则说明分解质因数的过程已经结束,另外 打印出即可。
(2)但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n.重复执行第二步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
#include<iostream>
#include<string.h>
using namespace std;
#include<math.h>
int main(){
int i,n,k;
cin>>n;
cout<<n<<'=';
for(i=2;i<=n;i++){
while(n%i==0){
cout<<i;
n=n/i;
if(n!=1){
cout<<'*';
}
}
}
cout<<'\n'<<endl;
return 0;
}