「已注销」 2015-11-29 20:01 采纳率: 100%
浏览 1607

C语言题目的问题求助!

C语言做题目的时候遇到的问题 感觉自己就是转不过来弯 如果有前辈把自己思考的过程写在下面 小弟感激不尽呀!

 #include<stdio.h>
/*
求一个整数任意次方后的最后三位数字

*/

int main()
{
    int i, x, y, z = 1;
    printf("请输入两个数,x和y(y是x的幂):\n");
    scanf("%d %d", &x, &y);
    for (i = 1; i <= y; i++)
    {
        z = z*x % 1000;
        if (z >= 100)
        {
            printf("%d%d的最后三位数是:%d", x, y, z);
        }
        else
        {
            printf("%d%d的最后三位数是:%d", x, y, z);
        }
    }

    return 0;
}
/*
算法分析:
y为x的幂 z用来保存这个整数任意次方后的最后三位数字
试数字
1234的2次方为 1 522 756
1》    x=1234 y=2
i=1 i<=2
z=z*1234%1000=234
z>100
i++=2

2》z=234*1234%1000=756

疑惑:
为什么要判断z的值是否大于或者等于100呢?
还有为什么这个数的最后三位数x这个数的结果的最后三位数 就是这个数平方积的最后三位数了 这是一个公式吗?
234 * 1234 % 1000
*/
  • 写回答

6条回答 默认 最新

  • sowei1988 2015-11-29 20:38
    关注

    程序有错啊,for循环应该只计算x的平方而不应该有输出,把if语句放在for的后边才对。判断z是否大于等于100,因为只有100以上才是三位数啊!else部分应该补齐两位和个位的情况。

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?