本算法主要利用辗转相除法求出两个数的最大公约数。
int main(){
int m=0;
int n=0;
int r=0;
scanf("%d %d",&m,&n);
while(r=m%n){
m=n;
n=r;
}
printf("%d\n",n);
return 0;
}
菲波那切数列:指的是这样一个数列:1、1、2、3、5、8、13、21、34、……这个数列从第3项开始,每一项都等于前两项之和。
int fib(int n){
if(n<=2)
return 1;
else
return fib(n-1)+fib(n-2);
}
int main(){
int i=0;
int ret=0;
scanf("%d",&i);
ret=fib(i);
printf("ret=%d",ret);
return 0;
}
本算法主要利用辗转相除法求出两个数的最大公约数。
int main(){
int m=0;
int n=0;
int r=0;
scanf("%d %d",&m,&n);
while(r=m%n){
m=n;
n=r;
}
printf("%d\n",n);
return 0;
}
int main(){
int a=0;
int b=0;
int c=0;
scanf("%d%d%d",&a,&b,&c);
//算法实现:a中放最大值 b次之 c中放最小值
if(a
int main(){
int i=0;
char password[20]={0};
for(i=0;i<3;i++){
printf("请输入密码:>");
scanf("%s",password);
if(strcmp(password,123456)==0){ //==不能用来比较两个字符串是否相等,应该使用一个库函数--strcmp
printf("登陆成功\n");
break;
}else{
printf("密码错误\n");
}
}
if(i==3)
printf("三次密码错误,退出程序\n");
return 0;
int main(){
int arr[]={1,2,3,4,5,6,7,8,9,10};
int k=7;
int sz=sizeof(arr)/sizeof(arr[0]); //计算元素个数
int left=0; //左下标
int right=sz-1; //右下标
while(left<=right){
int mid=(left+right)/2;
if(arr[mid]>k){
right=mid-1;
}
else if(arr[mid]right){
printf("找不到\n");
}
return 0;
}
int main()
{
int i=0;
int j=0;
for(i=1;i<10;i++)
{ //一共9行
for(j=1;j<=i;j++)
{
printf("%d*%d=%-2d ",i,j,i*j); //"%-2d"的作用是使打印的结果左对齐
}
printf("\n"); //打印完一行再分行
}
return 0;
}
int main(){
int i=0;
int count=0;
for(i=1;i<=100;i++){
if(i%10==9){
count++;
}
if(i/10==9){
count++;
}
}
printf("count=%d\n",count);
return 0;
}
int main(){
int i=0;
int count=0;
for(i=100;i<=sqrt(i);i++){
int j=0;
for(j=2;jsqrt(i)){ //sqrt(i)表示开平方 --记得调用数学库函数
count++;
printf("%d\n",i);
}
}
printf("count=%d\n",count);
return 0;
}
方法一:
int main(){
int a,b;
scanf("%d %d",&a,&b);
a=a+b;
b=a-b;
a=a-b;
printf("a=%d b=%d\n",a,b);
return 0;
}
这种方法有缺陷,可能会导致整形溢出 。
方法二:
int main(){
int a,b;
scanf("%d %d",&a,&b);
a=a^b;
b=a^b;
a=a^b;
printf("a=%d b=%d\n",a,b);
return 0;
}