程序设计 练习五"/>
HNU程序设计 练习五
1.小熊买糖果
【问题描述】
小熊去到商店,选择了一种它非常喜欢的糖果,其单价为 k 元,假定商店里有无穷多的这种糖果。
它的父亲允许它花费任意多的10元硬币和一个 r 元硬币去购买,但不能找零,请帮助小熊确定它能购买的最少数量的糖果是多少?
【输入形式】
输入为一行两个整数 k 和 r (1≤ k ≤1000,1≤ r ≤9),分别表示糖果的价格以及小熊手里的单独硬币的币值。
【输出形式】
输出为一个数,表示小熊在不找零的情况下所能购买糖果的最小数量。
【样例输入1】
117 3
【样例输出1】
9
【样例输入2】
10 3
【样例输出2】
1
//小熊买糖果
//小熊去到商店,选择了一种它非常喜欢的糖果,其单价为 k 元,假定商店里有无穷多的这种糖果。
//
// 它的父亲允许它花费任意多的10元硬币和一个 r 元硬币去购买,但不能找零,请帮助小熊确定它能购买的最少数量的糖果是多少?
#include <iostream>using namespace std;
int getCandy(int, int);int main()
{int k, r;cin>>k>>r;int result=getCandy(k,r);cout<<result<<endl;return 0;
}int getCandy(int k,int r){int res=1;int s=k;while(s%10!=0 && (s-r)%10!=0){ //要么没用零钱全是10,要么用了零钱 s+=k;res+=1;}return res;
}
2.最大公约数和最小公倍数
【问题描述】
从键盘输入两个正整数,求他们的最大公约数和最小公倍数。
【输入形式】
输入为一行,两个正整数
【输出形式】
输入为一行,表示这两个正整数的最大公约数和最小公倍数
【样例输入】
15 125
【样例输出】
5 375
//最大公约数和最小公倍数
//从键盘输入两个正整数,求他们的最大公约数和最小公倍数。
#include <iostream>using namespace std;
int gcd(int,int);
int lcm(int,int);
int main()
{int x,y;cin>>x>>y;cout<<gcd(x, y)<<" "<<lcm(x,y)<<endl;return 0;
}int gcd(int u, int v)
{if(u<v){int tem=u;u=v;v=tem; //大的除以小的}int m=u%v;while(m!=0){u=v;v=m; //辗转相除法m=u%v;}return v;
}
int lcm(int u,int v)
{//最小公倍数等于两数乘积除以最大公约数return u*v/gcd(u,v);
}
3.我爱数学,我爱编程,我更爱多文件编程
【问题描述】
从键盘输入任意多个正整数,判断其中有多少个素数和回文数?
【输入形式】
输入任意多个正整数,输入使用ctrl^Z结束。
【输出形式】
输出为两个整数,分别表示输入的若干个数中,素数、回文数的个数。
【样例输入】
11 121 7
【样例输出】
2 3
#include"judge.h"
//从键盘输入任意多个正整数,判断其中有多少个素数和回文数?
bool prime(int a){if(a<2){return false;}else if(a==2){return true;}for(int i=2;i<=a/2+1;i++){if(a%i==0){return false;//是不是素数}}return true;
}
bool plalindrome(int a){int res=0;int t=a;while(a>0){int y=a%10; //是不是回文数a/=10;res*=10;res+=y; //直接反转数字}if(res==t){return true;}else{return false;}
}
4.杨辉三角
【问题描述】
输入层数 n,打印 n 层杨辉三角
【输入形式】
输入为一行一个整数 n
【输出形式】
输出 n 层杨辉三角
【样例输入】
5
【样例输出】
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
提示:杨辉三角的每一行对应为二项式系数,且有公式
#include"yang.h"
#include<iostream>
//输入层数 n,打印 n 层杨辉三角
using namespace std;
void PrintBlank(int num){for(int i=1;i<=num;i++){cout<<" "; //打印空格,第一个数前面的}
}
void PrintCombine(int n){n-=1;int *arr=new int[n+1];arr[0]=1;cout<<arr[0]<<" "; for(int i=1;i<=n;++i){arr[i]=arr[i-1]*(n-i+1)/i; //利用杨辉三角的每一行对应为二项式系数,且有公式 cout<<arr[i]<<" ";}
}
更多推荐
HNU程序设计 练习五
发布评论