c++作业 9

1

8除不尽的数 题目描述 一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为 a。又知这个自然数被17除余4,所得的商被17除余15,最后得到一个商是a的2倍。求满足条件 的最小的这个自然数。 输入 无 输出 一个自然数

#include<iostream>
using namespace std;
int main()
{
    int i = 0;
    while(true)
    {
        if(i%8==1 && i%64==1 &&i%(64*8)==7 && i%17==4 && i%(17*17)==15)
        {
            cout<<i<<endl;
            break;
        }
    }
    i++;
    return 0;

}

2

题目描述 日本一位中学生发现一个奇妙的定理,请角谷教授证明,而教授无能为力,于是产生了 角谷猜想。猜想的内容:任给一个自然数,若为偶数则除以2,若为奇数则乘3加1,得 到一个新的自然数后按上面的法则继续演算。若干次后得到的结果必为1。请编写代码 验证该猜想:求经过多少次运算可得到自然数1。 如:输入22,则计算过程为。 22/2=11 11×3+1=34 34/2=17 17×3+1=52 52/2=26 26/2=13 13×3+1=40 40/2=20 20/2=10 10/2=5 5×3+1=16 16/2=8 8/2=4 4/2=2 2/2=1 经过15次运算得到自然数1。 输入 一行,一个正整数n。(1 <= n <= 20000 ) 输出 一行,一个整数,表示得到1所用的运算次数。

#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int cnt = 0;
    while(n!=1)
    {
        if(n%2==0)
        {
            n = n/2;
        }
        else
        {
            n = n*3+1;
        }
        cnt++;
    }
    return 0;
}

3

题目描述 小明开心的在游泳,可是他很快难过的发现,自己的力气不够,游泳好 累哦。已知小明每换一次气能游2米,可是随着越来越累,力气越来越 小,他接下来的每换一次气都只能游出上一步距离的98%。现在小明想 知道,如果要游到距离x米的地方,他需要总共换多少次气呢。请你编 程解决这个问题。 输入 输入一个数字(不一定是整数,小于100m),表示要游的目标距离。 输出 输出一个整数,表示小明一共需要换多少次气。

#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    float sun = 0;
    float a = 2;
    int cnt = 0;
    while(true)
    {
        if(sun>=n)
        {
            break;
        }
        sun = sun + a;
        a = a*0.98;
        cnt++;
    }
    return 0;
}

韩信点兵 题目描述 韩信有一对士兵,他想知道有多少人,他就让士兵报数,如果按照1到5报数,最末一个士兵报 的数为1;按照1到6报数,最末一个士兵报的数为5;按照1到7报数,最末一个士兵报的数为4 ;最后再按1到11报数,最末一个士兵报的数为10,请问韩信这队士兵最少有多少人? 输入 无 输出 输出这队士兵最少有多少人

#include<iostream>
using namespace std;
int main()
{
    int i=0;
    while(true)
    {
        if((i-1)%5==0 && (i-5)%6==0 && (i-4)%==0 && (i-10)%11==0)
        {
            cout<<i<<endl;
            break;
        }
        i++;
    }
    return 0;
}

5

题目描述 爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶, 最后才正好一阶不剩。请问这条阶梯最少共有多少阶? 输入 无 输出 这条阶梯最少的阶数

#include<iostream>
using namespace std;
int main()
{
    int n;
    while(true)
    {
        if((n-1)%2==0 && (n-2)&3==0 && (n-4)%5==4 && (n-5)%6==0 && n%7==0)
        {
            cout<<n<<endl;
            break;
        }
        n++;
    }
    return 0;
}

6

题目描述 请问一个正整数n能够整除几次2? 比如:4可以整除2次2,100可以整除2次2,9可以整除0次2。 输入 从键盘读入一个正整数n 输出 输出一个整数,代表n能够整除2的次

#include<iostream>
using namespace std;
int main()
{
    float h = 100;
    int cnt = 0;
    while(h>=0.5)
    {
        h = h/2;
        cnt++;
    }
    return 0;

}

7

题目描述 小球从100米高处自由落下,着地后又弹回高度的一半再落下。经过多少次落地后,小 球弹起的高度才会低于0.5米? 输入 无 输出 一行,一个整数。

#include<iostream>
using namespace std;
int main()
{
    int sum = 95860;
    int n = 95859;
    while(true)
    {
        int w = sum/10000%10;
        int g = sum%10;
        int q = sum/1000%10;
        int s = sum/10%10;
        if(w == g && s == q)
        {
            break;
        }
        sum++;
    }
    cout<<(sum-n)/2<<""<<sum;
    return 0;
}

8

题目描述 一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称 数(即这个数从 左向右读和从右向左读是完全一样的),为95859。两小时后里程表上 出现了一个新的对称数 。问该车的速度是多少?新的对称数是多少? 输入 无 输出 输出两行,第一行是车速,第二行是新的里程数(两个都是整数)

#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int cnt = 0;
    while(n%2==0)
    {
        n = n/2;
        cnt++;
    }
    return 0;
}
 

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值