「已注销」 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 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
  • ¥50 C++五子棋AI程序编写
  • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。