新函数定义

首先定义一个阶乘的函数,从1乘到num,再定义题中要求的fun函数,通过while循环,将输入的整数分成各个部分,依次求阶乘,再求和,这个函数用到了上面定义的阶乘函数,使这个函数更加简洁。

完整代码:

#include<iostream>

using namespace std;

int jiecheng(int num)

{

int result=1;

for(int i=1;i<=num;i++)

{

result*=i;

}

return result;

}

long long fun(int n)

{

int m;

long long sum=0;

while(n>0)

{

m=n%10;

sum+=jiecheng(m);

n/=10;

}

return sum;

}

int main()

{

int n;

cin>>n;

cout<<fun(n)<<endl;

return 0;

}

全部评论

相关推荐

2024-12-25 09:15
厦门大学 算法工程师
#牛客在线求职答疑中心#基于FIFO的异步数据传输模块 题目要求: 设计一个基于&nbsp;FIFO(先入先出)原则的异步数据传输模块。该模块应能够接收一个输入数据流,并按顺序传送到输出。模块应能够处理数据的存取、发送等操作。 功能要求: •&nbsp;输入:时钟信号&nbsp;clk_in(输入时钟),clk_out(输出时钟),数据输入&nbsp;data_in&nbsp;和写使能信号&nbsp;write_en。&nbsp;•&nbsp;输出:数据输出&nbsp;data_out&nbsp;和读使能信号&nbsp;read_en。&nbsp;•&nbsp;该FIFO具有存储深度为8的缓冲区,能够存储最多8个数据。&nbsp;测试平台(testbench): module&nbsp;FIFO_tb;&nbsp;reg&nbsp;clk_in,&nbsp;clk_out,&nbsp;write_en;&nbsp;reg&nbsp;[7:0]&nbsp;data_in;&nbsp;wire&nbsp;[7:0]&nbsp;data_out;&nbsp;wire&nbsp;read_en;&nbsp;FIFO&nbsp;uut&nbsp;(&nbsp;.clk_in(clk_in), .clk_out(clk_out), .write_en(write_en), .data_in(data_in), .data_out(data_out), .read_en(read_en) ); initial&nbsp;begin&nbsp;clk_in&nbsp;=&nbsp;0;&nbsp;clk_out&nbsp;=&nbsp;0;&nbsp;write_en&nbsp;=&nbsp;0;&nbsp;data_in&nbsp;=&nbsp;8'b0;&nbsp;#10&nbsp;write_en&nbsp;=&nbsp;1;&nbsp;data_in&nbsp;=&nbsp;8'b11001100;&nbsp;//&nbsp;写入数据&nbsp;#20&nbsp;write_en&nbsp;=&nbsp;1;&nbsp;data_in&nbsp;=&nbsp;8'b10101010;&nbsp;//&nbsp;写入数据&nbsp;#30&nbsp;write_en&nbsp;=&nbsp;0;&nbsp;//&nbsp;停止写入&nbsp;#50&nbsp;$finish;&nbsp;end always&nbsp;#5&nbsp;clk_in&nbsp;=&nbsp;~clk_in;&nbsp;//&nbsp;输入时钟&nbsp;always&nbsp;#10&nbsp;clk_out&nbsp;=&nbsp;~clk_out;&nbsp;//&nbsp;输出时钟&nbsp;endmodule
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务