c++基础-求满足下述两个条件的最小自然数n

问题描述

求满足下述两个条件的最小自然数n

求满足下述两个条件的最小自然数n:
(1) n的个位数字为8;
(2) 将n的个位数字8移到其它各位数字之前(如205128移过后为820512),所得的新数恰为n的4倍。

解决方案

求两个自然数的最小公约数

解决方案二:

     // 写了一个C#版的,反正差不多
    static void Main(string[] args)
    {
        int oldNum = 8;
        int newNum = 0;
        int tempNum = 32;

        while (4 * oldNum != newNum)
        {
            int oldNumLenth = GetLength(oldNum);

            int carry = tempNum / 10;
            int unit = tempNum % 10;
            if (unit == 0)
            {
                oldNum += tempNum * (int)Math.Pow(10, oldNumLenth);
                tempNum = 4 * carry;
                oldNumLenth = GetLength(oldNum);
            }
            else
            {
                oldNum += unit * (int)Math.Pow(10, oldNumLenth);
                tempNum = 4 * unit + carry;
            }

            newNum = (oldNum - 8) / 10 + 8 * (int)Math.Pow(10, oldNumLenth - 1);
            Console.WriteLine(newNum + "      " + oldNum);
        }
    }

解决方案三:

上面只需要把(int)Math.Pow(10, oldNumLenth)替换成(int)pow((double)10, oldNumLenth)这种类型就都一样了。GetLength(oldNum)是获取oldNum的位数。
很简单的啦。。。

解决方案四:

#include
using namespace std;
int maxa(void);
int main()
{
int n=8;
for(n=8;n
{
int k=1;//记录n的位数
int x=n;
while(x/10!=0){
x=x/10;
k++;
}
x=(n>10)?(n/10):n;//去掉n的个位8
int firstnum=8;
for(int i=1;i
firstnum=firstnum*10;
x+=firstnum;
if(x==n*4)//判断x是否是原来n值的4倍
break;
}
cout
cin>>n;
return 0;
}

解决方案五:

时间: 2024-11-08 18:18:03

c++基础-求满足下述两个条件的最小自然数n的相关文章

c语言编程-求解答这两个的区别!(前两张图片),还有为什么不执行了(最后一张

问题描述 求解答这两个的区别!(前两张图片),还有为什么不执行了(最后一张 解决方案 左边的翻译一下就是如果....如果.....,两个if语句都会执行的,右边的翻译一下就是如果......不然.....,在不满足if时,才会判断else if. 下面的那个如果year不满足if中的条件的话就不会执行,if后面括号中的是用来判断的,只有符合条件才会执行大括号中的方法体 解决方案二: 右边的程序,只有当第一个条件不满足,才会判断第二个条件.左边不管第一个条件,都会判断第二个. 下面程序,不知道ye

用两种不同的方法来求实现数字字符串的最大,最小和平均值

字符串 用两种不同的方法来求实现数字字符串的最大,最小和平均值 <%@ LANGUAGE = "VBScript"ENABLESESSIONSTATE = False %><%'1. Selecting the numbers from a string:myString = "2, 4, 6, 8, 10, 12"aValues = Split(myString, ",", -1, 1)</P><P>F

C++求阶乘的两种方法

 这篇文章主要介绍了C++求阶乘的两种方法,有需要的朋友可以参考一下 1.使用静态局部变量static 静态局部变量在函数调用结束之后不消失而保留原值,即其占用的存储单元不释放,在下一次该函数调用时,该变量保留上一次函数调用结束时的值.   静态局部变量赋初值实在编译时进行的,即只赋初值一次,在程序运行时它已有初值.   code:   代码如下: #include<iostream> using namespace std; int fac(int n) {  static int f=1;

数据-急!请教这个sql语句怎么写:两个条件查询,其中一个满足,另一个条件就不要加了

问题描述 急!请教这个sql语句怎么写:两个条件查询,其中一个满足,另一个条件就不要加了 条件2始终存在,条件1不一定始终有.条件1.条件2的数据可能同时存在,但是 当有条件1的数据存在的时候,显示条件1的数据: 如果没有,则显示条件2的数据的数据. 解决方案 select * from table where (条件1 and not exist (select * from table where 条件2)) or (条件2 and not exist (select * from tabl

算法 正则 java 交集-求算法 判断两个正则表达式是否存在交集

问题描述 求算法 判断两个正则表达式是否存在交集 求算法 判断两个正则表达式是否存在交集,最好java的 十分感谢

求sql语句中带有条件的查询

问题描述 求sql语句中带有条件的查询 我现在有一张users表,有字段uid,uname,address,phone1,phone2,phone3: 我想在这张表中这样查: 主要查phone1,但是如果有一条数据的phone1位空的话,就查phone2,如果phone1,phone2都为空就查phone3,这样的SQL语句要怎么写呢,求大神帮忙解答???? 解决方案 select case when phone1 is null then ( case when phone2 is null

abs-关于求一维数组里所有两元素之和的最小绝对值,求指点

问题描述 关于求一维数组里所有两元素之和的最小绝对值,求指点 题目详情给你一个数组A[n]请你计算出ans=min(|A[i]+A[j]|)(0<=ij例如:A={1, 4, -3},则:|A[0] + A[0]| = |1 + 1| = 2.|A[0] + A[1]| = |1 + 4| = 5.|A[0] + A[2]| = |1 + (-3)| = 2.|A[1] + A[1]| = |4 + 4| = 8.|A[1] + A[2]| = |4 + (-3)| = 1.|A[2] + A[

求解答-求数据库高手两个SQL语句 多少说两句给个思路也行啊 谢谢

问题描述 求数据库高手两个SQL语句 多少说两句给个思路也行啊 谢谢 点击搜索显示列表项SQL语句怎么写 insert语句又该怎么写 解决方案 一些求数据库对象的SQL语句 解决方案二: 这是要查多个表的内容,所以在使用连接查询

浅谈建站网赚成功的两个条件

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 其实建站网赚就和做生意差不多,一定要诚信,也许有的人说现在诚信根本就赚不了钱,很多赚钱的都是依靠坑蒙拐骗获得的,可是这些人往往赚的快,赔本的也快,而真正能够长久赚钱的还是那些讲诚信的人,而建设网站网赚的诚信就离不开两个条件,一个是对客户负责,另外一个就是透明化! 下面我就跟大家分享一下我遇到的一件有关建站网赚的事情,这件事情是典型的不诚信的实