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]<<" ";
    }
}
 



















