給定兩個數,求這兩個數的最大公約數
本算法主要利用輾轉相除法求出兩個數的最大公約數。
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;elsereturn 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<b){int tmp=a;a=b;b=tmp;} if(a<c){int tmp=a;a=c;c=tmp;}if (b<c){int tmp=b;b=c;c=tmp;}printf("%d %d %d\n",a,b,c);return 0;
}
模擬用戶登陸情況,且只能輸如三次
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]<k){left=mid+1;}else{printf("找到了,下標是:%d\n",mid);break;} }if(left>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;
}
數一下1-100中所有整數出現多少個數字9
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;
}
打印1-200之間的素數,并輸出總共有多少個
int main(){int i=0;int count=0;for(i=100;i<=sqrt(i);i++){int j=0;for(j=2;j<i;j++){if(i%j==0){break;}}if(j>sqrt(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;
}