求19的19次方的后3位数,最好用C或Java编写

来源:百度知道 编辑:UC知道 时间:2024/05/23 23:22:48
求19的19次方的后3位数,最好用C或Java编写!!

答案是:979
方法一:
19的19次方等于1*19*19*···*19
因为只求后三位,所以说
每次乘法之后把千位以上的都去掉,对低三位也没有任何影响。
根据以上思路,写出程序。
#include "stdio.h"
main()
{
int i,n;
for(i=1,n=1;i<=19;i++)
{
n*=19;
n%=1000;
}
printf("%d",n);
}

方法2:
求出19的19次方,(用字符数组来存放每一位)程序在下面,具体的功能我就不说了,用下面的程序,你可以求出任意位的数字。
/*求19的19次方的最后三位,先求出19的19次方,答案979*/
/*也可以求n的m次方的任意位*/

#include<stdio.h>
#define N 500 /*最大位数*/
typedef void Status;
/*++++++++++++++++++++++++++++++++++++++*/
/*功能:把b指向的数组每个元素的值乘以i,然后给a指向的数组对应的元素*/
/*实现过程是执行i次(*a=*a+*b)*/
Status add(char *a,char *b,int i)
{
char *pa,*pb;

for( ;i>0;i--) /*执行i次(*a=*a+*b)*/
{
for(pa=a+N-1,pb=b+N-1;pa>=a;pa--,pb--) /*先执行一次(*a=*a+*b)*/
*pa+=*pb; /*每个元素都要加一次*/

for(pa=a;pa<a+N-1;pa++) /*处理进位问题,最高位单独处理*/
if(*pa>