象帝之先


私信TA

用户名:scorpiowolf

访问量:73884

签 名:

科技改变世界,万物皆可编程。

等  级
排  名 42
经  验 11853
参赛次数 3
文章发表 53
年  龄 20
在职情况 学生
学  校 青岛理工大学琴岛学院
专  业 计算机科学与技术

  自我简介:

一个合格程序员的标准: 兴趣否? 持之以恒否? 耐寂寞钻研否? 挖掘机技术哪家强?

解题思路:


利用循环遍历所有三位数,每遍历到一个数,就通过再通过循环分离每一位,每分离出一位用pow函数求出其3次方,并储存和。

注意事项:


pow函数的头文件是cmath(c++)或 math.h(c),函数的返回值是double类的数据,所以如果储存和的变量是int类的变量,请不要忘记强制转化数据,否则容易报错。

在循环中,如果对某系变量需要反复操作,请留意是否需要在循环结束或者开始的时候,对该变量进行重新定义初始化操作(回溯)

参考代码:

#include<iostream>
#include<cmath>
using namespace std ;
int main()
{
	int nSum = 0 ;//各位3次方和 
	for(int i = 100;i <= 999;i++)
	{
		int r = i ;//中间变量储存i的值,方便下一步的取位操作和原数比较 
		while(r != 0)
		{
			int n = r % 10 ;//利用取余,取出最后一位 
			nSum += (int)pow(n,3) ;//ps:强转 
			r /= 10 ;//删去已经取得的位数 
		}
		if(nSum == i)//判断是否与原数相等 
		{
			cout<<i<<endl ;
		}
		nSum = 0 ;//回溯,初始化 
	}
	return 0 ;
}


 

0.0分

40 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

#include <stdio.h>
#include<math.h>

int main()
{
	
	int i;
	for(i=100;i<1000;i++){
		int a=i/100;   //百位数 
		int b=(i-a*100)/10;    //十位数 
		int c=i%10;     //个位数 
		int sum=pow(a,3)+pow(b,3)+pow(c,3);    //各位数立方和 
		if(sum==i){         //判断是否相等 
			printf("%d\n",i);
		}
	} 
	
	
	
	return 0;
}
2023-01-01 14:42:12
#include <iostream>
using namespace std;
int main()
{
	int x,y,z;
	for(int i=100;i<1000;i++){
		x=i%10;//个位
		y=i%100/10;//十位
		z=i/100;//百位
		if(i==x*x*x+y*y*y+z*z*z){
		cout<<i<<endl;
		continue;
		}
	}
	return 0;
}
2021-10-09 19:50:03
  • «
  • 1
  • »