14、输入4个整数,要求按由小到大的顺序输出。
- #include<iostream>
- #define NUMBER 4
- using namespace std;
- void sort(int *num)
- {
- int i, j;
- for(i=0; i<NUMBER-1; i++) {
- for(j=i; j<NUMBER; j++) {
- if(num[i] > num[j]) {
- int t = num[i];
- num[i] = num[j];
- num[j] = t;
- }
- }
- }
- }
- int main()
- {
- int num[NUMBER];
- int i;
- cout << "Input 4 number : ";
- for(i=0; i<NUMBER; i++)
- cin >> num[i];
- sort(num);
- for(i=0; i<NUMBER; i++)
- cout << num[i] << " ";
- cout << endl;
- return 0;
- }
15、输入两个正整数m和n,求其最大的公约数和最小公倍数。
- #include <iostream>
- int main()
- {
- int m, n;
- int m_cup, n_cup, res; /*被除数, 除数, 余数*/
- printf("Enter two integer:\n");
- scanf("%d %d", &m, &n);
- if (m > 0 && n >0)
- {
- m_cup = m;
- n_cup = n;
- res = m_cup % n_cup;
- while (res != 0)
- {
- m_cup = n_cup;
- n_cup = res;
- res = m_cup % n_cup;
- }
- printf("Greatest common divisor: %d\n", n_cup);
- printf("Lease common multiple : %d\n", m * n / n_cup);
- }
- else printf("Error!\n");
- return 0;
- }
19、输出所有的“水仙花数”,所谓水仙花数是指一个三位数,其各位数字的立方之和等于该数本身。
- #include<iostream>
- #include<cmath>
- using namespace std;
- void getArmstrongNumber(int n1, int n2);
- int main()
- {
- getArmstrongNumber(25,99999);
- return 0;
- }
- void getArmstrongNumber(int n1, int n2)
- {
- int x,n;//x是n位数
- for(x=n1;x<=n2;x++)
- {
- int temp=x,s=0;
- n=0;
- while(temp!=0)//计算数位n
- {
- n++;
- temp/=10;
- }
- temp=x;
- while(temp!=0)
- {
- s+=pow((temp%10),n);
- temp/=10;
- }
- if(s==x)
- cout<<x<<"是水仙花数!"<<endl;
- }
- }
20、一个数如果恰好等于它的因子之和,这个数就称为“完数”。编程找出1000之内的所有完数,并按下面的格式输出其因子:
6 是一个完数,其因子有1,
2,
3
- #include<iostream.h>
- void main()
- {
- int i,j,sum=0;
- for(i=1;i<=1000;i++)
- {
- sum=0;
- for(j=1;j<i;j++)
- {
- if(i%j==0)
- sum+=j;
- }
- if(sum==i)
- {
- cout<<i<<" 是一个完数,其因数有 ";
- for(j=1;j<i;j++)
- {
- if(i%j==0)
- cout<<j<<","<<endl;
- }
- }
- }
- }
上面都是百度上找的答案,看了代码才知道算法真的很重要,思考问题的方向和处理问题的方式都很重要,原来编程比的就是算法啊。一定要加油仔细的领会上面处理问题的思路和方法了。。。。。
阅读(829) | 评论(0) | 转发(0) |