函数FUN功能,计算n的5次方的值(规定N的值大于2且小于8),通过形参指针传回主函数,并计算该值的个位、十位、百位上数字之和作为函数值返回,例如7的5次方是16807后三位和为15

#include <stdio.h>
#include <math.h>
int fun(int n,int *value)
{
int d,s,i;
d=1;
s=0;
for(i=1;i<=5;i++)
d=d*n;
*value=d;
for(i=1;i<=3;i++)
{
s=s+d%10;
d=d/10;
}
return s;
}

void main()
{
int n,sum,v;
do
{
printf("\n Enter n(2<n<8):");
scanf("%d",&n);
}while(n<=2||n>=8);
sum=fun(n,&v);
printf("\n\nThe result: \n value=%d sum=%d\n\n" ,v,sum);
}

时间: 2024-11-03 21:43:40

函数FUN功能,计算n的5次方的值(规定N的值大于2且小于8),通过形参指针传回主函数,并计算该值的个位、十位、百位上数字之和作为函数值返回,例如7的5次方是16807后三位和为15的相关文章

整数的每一位上数字的确定

//首先得定义一个函数能够返回特定位上的数字 int bitValue(int num,int bit) {     int tmp=1;         int i;     for(i=1;i<bit;i++)         tmp=tmp*10;          //如果返回第一位上的数     if(bit==1)         return num%10;          //否则使用简单的递归方法返回任意位上数字     else {         int res=num/

从键盘输入一个十进制整型数据,计算并输出其各位上数字之和(忽略正负号)。

/* 从键盘输入一个十进制整型数据,计算并输出其各位上数字之和(忽略正负号). 例如,输入1234,输出10:输入-1234,输出10. */ #include <stdio.h> #include <string.h> #include<math.h> int abs(int n){ if(n>0) return n; return -n; } int main() { int n,sum=0; scanf("%d",&n); n=a

LightOJ 1282 - Leading and Trailing (求n的k次方的前三位数字 后三位)

题意:http://www.lightoj.com/volume_showproblem.php?problem=1282 n^k = a.bc * 10.0^m:等式两边同时加上log10k*log10(n) = log10(a.bc) + m;m为k * log10(n)的整数部分,log10(a.bc)为k * lg(n)的小数部分;x = log10(a.bc) = k*log10(n) - m = k*log10(n) - (int)k*log10(n);x = pow(10.0, x

3085 相同的后三位

3085 相同的后三位 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 青铜 Bronze 题目描述 Description 对于给定的p,编写程序求最小正整数m,n(0<n<m)为何值时,pm与pn的最后三位数字相同. 输入描述 Input Description 一个正整数p(100≤p≤9999) 输出描述 Output Description 一行,最小的m和n,m和n用空格隔开.如有多组,输出最小的m那组. 样例输入 Sample Input 100 样例输出 Sa

求随机数,按后三位排序

编写程序实现以下功能:    //随机产生20个正整数存入数组a中,且每个数均在1000-9999之间(包含1000和9999).对数组进行排序,要求按每个数的后三位的大小进 行升序排列,然后取出满足此条件的前10个数放入数组b中,如果后三位的数值相等,则按原先的数值进行降序排列.最后输出数组b的内容 #import <Foundation/Foundation.h>int value(int x){ //如何求出5609 的后三位数    int y = x /1000;    int c

UVA - 11029Leading and Trailing(快速幂取模取后三位 + log10()取前三位)

题目: UVA - 11029Leading and Trailing(快速幂取模取后三位 + log10()取前三位) 题目大意:给你N的k次方,然后要求你求出这个数的前三位和后三位. 解题思路:因为n和k都很大,这个数求出来是大数,所以可以用快速幂取模求后三位,因为后面的三位和前面的位数的没有关系.前面的三位比较难办.设x = log (n^k)  = k * log10(n),那么10^x = k * log10(n).将X = a(整数) + b(小数),整数部分10^a只是移动小数点,

求斐波那契数列的相邻两项的比值,精确到小数后三位。

未完成,只能假设知道是9和10代入. 代码如下: package zuoye; import java.math.BigDecimal; /* * 求斐波那契数列的相邻两项的比值,精确到小数后三位. * p1,p2,p3......pi,pj,...求pi/pj * 1 1 2 3 5 8 13 * 5/8,8/13,...收敛 */ public class Test { static double feibo(int x){ if(x==1||x==2) return 1; return f

编写函数fun,其功能是计算并输出如下多项式的值,sn=1+1/2!+1/3!+...+1/n!,例如,主函数从键盘输入15,输出的值是1.718282

#include <stdio.h> double fun(int n) { double sn=0.0,t; int i,j; for(i=0;i<=n;i++){ t=1.0; for(j=0;j<=i;j++) t=t*j; sn=sn+t; } return sn; }

13.任意次方后的后三位

#include <stdio.h> int main(int argc, char *argv[]) { int x,y,a = 1; printf("input x y(x^y):"); scanf("%d %d",&x,&y); int i; for(i = 1;i<=y;i++) { a=a*x; } printf("%d\n",a); int x1,x2,x3; x1 = a-(a/10)*10; x2