zoukankan      html  css  js  c++  java
  • 猜年龄

    美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。

        一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:

        “我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”

        请你推算一下,他当时到底有多年轻。

    答案写在这。

     

    解题思路: 将三次方, 四次方转换为字符串形式, 用sprintf()函数将这两个整数拼接成字符串, 检查字符串的长度是否为10, 并且检查字符串中有无重复字符, 若长度为10且无重复字符, 则符合要求, 输出结果

     

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    using namespace std;
    bool isUnique(char s[])
    {
    	bool a[256];
    	memset(a, 0, sizeof(a));
    	int len = strlen(s);
    	for(int i = 0; i < len; ++i)
    	{
    		int v = (int)s[i];
    		if(a[v]) return false;
    		a[v] = true;
    	}
    	return true;
    }
    int main()
    {
    	int a, b;
    	char str[10];
    	for(int i = 11; i <= 50; ++i)
    	{
    		a = i*i*i;
    		b = a * i;
    		sprintf(str, "%d%d", a, b);
    		if(strlen(str) == 10 && isUnique(str))
    			cout << i;
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    十大经典算法总结
    十大经典算法总结
    MySQL主从同步模拟
    MySQL主从同步模拟
    高斯定理
    高斯定理
    如何修改数据决策系统登陆地址为ip
    如何修改数据决策系统登陆地址为ip
    数据库连接池问题 Max Pool Size
    数据库连接池问题 Max Pool Size
  • 原文地址:https://www.cnblogs.com/mjn1/p/10264255.html
Copyright © 2011-2022 走看看