一、入门
1.计算再0~m之间可以组成多少不重复的三位数?(循环10168)
#include<stdio.h>int main(){
int m;
scanf("%d",&m);int n=0,i,j,k;for(i=1;i<=m;i++){
for(j=0;j<=m;j++)
{
for(k=0;k<=m;k++)
{
if(i!=k&&k!=j&&j!=i&&(k%2==0))
{
n++;
}
}
}
}printf("%d",n);
return 0;
}
2.用0~n之间不同的数组成三位数,求有多少种方法?
#include<stdio.h>int main(){
int i,j,k,count=0;
int n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=0;j<=n-1;j++)
{
for(k=0;k<=n-2;k++)
{
count++;
}
}
}
printf("%d",count);
return 0;
}
二、函数
3.有三座塔,ABC,开始时A上有n 个盘子,大小不等,大在上,小在下,
要将盘子从A移到C座,每此只能移一个,输入盘子的数量,输出移动的
步骤,利用递归完成?
#include "stdio.h"
int move(char x,char y){
printf("%c to %c\n", x, y);
}int hanoi(int n,char a,char b,char c){
if(n==1) move(a,c);
else
{
hanoi(n-1,a,c,b);
move(a,c);
hanoi(n-1,b,a,c);
}
return 0;
}
int main(){
int n,count;
scanf("%d", &n);
count=hanoi(n,'A','B','C');
return 0;
}
4.求取斐波那契数列的第n项?
#include <stdio.h>int fibo(int t){
if(t==1) return 0;
else if(t==2) return 1;
else return fibo(t-1)+fibo(t-2);
}int main(){
int n,s;
scanf("%d", &n);
s=fibo(n);
printf("%d", s);
return 0;
}
5.利用递归函数求n!
#include <stdio.h>
int fun(int n){
if(n<0) return 0;
else if(n==0||n==1)
return 1;
else return (n*fun(n-1));
}
int main({
int n;
scanf("%d", &n);
printf("%d", fun(n));
return 0;
}
7.输入正整数,转化为二进制输出
#include<stdio.h>
void dectobin(int n);int main(){
int n;
scanf("%d",&n);
dectobin(n);
return 0;
void dectobin(int n)
{
int i=0,a[32];
while(n>0)
{
a[i]=n%2;
i++;
n=n/2;
}
for(i--;i>=0;i--)
printf("%d",a[i]);
}
8.返回number逆序数
#include<stdio.h>int reverse(int n)
{
int i,m=0;
while(n/10!=0)
{
i=n%10;
n=n/10; m=m*10+i;
}
if(n!=0)
{
m=m*10+n;
}
return m;
}int main(){
int n;
scanf("%d",&n);
printf("%d",reverse(n));
return 0;
}
9.输出m,n之间的Fibonacci数
#include "stdio.h"
int fibo(int n){
if(n<=0) return 0;
else if(n==1) return 1;
else if(n==2) return 1;
else return (fibo(n-1)+fibo(n-2));
}int main(){
int m,n,i=1;
scanf("%d %d",&m,&n);//m and n are number of fibo
for(fibo(i)==m;fibo(i)<=n;i++)
{
printf("%d ",fibo(i));
}
return 0;
}
10.海滩上有一堆桃子,五只猴子分桃,第一只猴子将桃子分成五份
多了一个,扔入海中,拿走一份;第二只猴子同样做法,问海滩上原
来最少有多少桃子?(3121)
#include "stdio.h"int main()
{
int i,start, sum;
for(start=6;;start+=5)
{
sum=start;
for(i=4;i>0;i--)
{
if(sum%4==0)
sum=sum/4*5+1;
else break;
}
if(i==0) break;
}
printf("%d",sum);
return 0;
}
11.输入正整数repeat(小于10)输入一个正整数m,若为素数,输出
“YES"否则"NO"
#include "stdio.h"int f(int n)
{
int i,sum=0;
if(n!=2)
{
for(i=2;i<n;i++)
{
if(n%i==0)
{
sum=0; break;
}
if(n%i!=0) sum=1;
}
}
if(n==2) sum=1;
return sum;
}
int main(){
int repeat ,i ,m;
scanf("%d",&repeat);
for(i=0;i<repeat;i++)//*repeats
{
scanf("%d",&m);
if(f(m)==1) printf("YES\n");
else printf("NO\n");
}
return 0;
}
12.编写一个函数判断密码是否有效,密码大于8小于等于16,密码中的
字符至少来自其中至少三组
a.大写字母;b.小写字母;c.数字;d.特殊符号
#include "stdio.h"int main(){
char a[16];
gets(a);
int i,s=0,b=0,c=0,d=0,t;
for(i=0;a[i]!='\0';i++)
{
if(a[i]>'a'&&a[i]<'z') s++;
else if(a[i]>='A'&&a[i]<='Z') b++;
else if(a[i]>='0'&&a[i]<='9') c++;
else d++;
}
t=a+b+c+d;
if(t>=8)
{
if(a!=0 && b!=0 && c!=0 ) printf("YES");
else if(a!=0 && b!=0 && d!=0) printf("YES");
else if(a!=0 && c!=0 && d!=0) printf("YES");
else if(b!=0 && c!=0 && d!=0) printf("YES");
else printf("NO");
}
else printf("NO");
//printf("%d %d %d %d",s,b,c,d);
return 0;
}
13.判断第n个Fibonacci数列f(0)=7,f(1)=11,f(n)=f(n-1)+f(n-2)是否能被3
整除,输出YES 或