c++循环

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

输出
一个自然数

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

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

输出
这条阶梯最少的阶数

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

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

输入复制4.3

输出复制3
输入


输入一个数字 (不一定是整数,小于100m)表示要游的目标距离
输出


输出一个整数,表示小明一共需要换多少次气。

#include<iostream>
using namespace std;
int main()
{
	int x;
	cin>>x;
	float sum = 0;
	int cnt = 0;
	float a = 2;
	while(sum<x)
	{
	    sum = sum+ a;
	    a = a*9.98;
		cnt++;
	}
	cout<<cnt;
	return 0;
}

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

输入
一行,一个正整数n。(1<= n <= 20000)
输出
一行,一个整数,表示得到1所用的运算次数

 样例

输入复制22
输出复制15

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值