一个c语言程序而已

来源:互联网 发布:sklearn tensorflow 编辑:程序博客网 时间:2024/05/12 14:04

最近闲来无事,很想找点事做,看到CSDN上的编程题,就随机挑选了一道,想试试手打发打发时间罢了,程序写完之后有,也调试过了,逻辑和结果都是正确的,但提交到网站后,竟然无法通过,真的有点纳闷,因此就想直接把这个贴在博客里面,也不枉我花了时间在这个程序上,聊以慰藉而已!

题目:给定整数区间[A,B]问其中有多少个完全平方数。 输入格式: 多组数据,包含两个正整数A,B 1<=A<=B<=2000000000。 输出格式: 每组数据输出一行包含一个整数,表示闭区间[A,B]中包含的完全平方数的个数。 

挑战规则: 

输入样例:

1  1 

1  2 

3  10 

3   3 

输出样例:  

2

0

<pre name="code" class="html">
#include<stdio.h>
#include<string.h>#include<math.h>#include<stdlib.h>#define MAX_NUM 126void get_datum(int data[],int group_num);void handler_fun(int in_data[],int out_data[],int group_num); void print_fun(int out_data[],int group_num);int main(void){int Group_Num;int i_Data[MAX_NUM],o_Data[MAX_NUM/2];printf("需要输入数据的组数:");scanf("%d",&Group_Num);if(Group_Num > (MAX_NUM/2)){printf("数据太多!\n");return -1;} printf("\n");printf("请输入数据:\n");get_datum(i_Data,Group_Num);handler_fun(i_Data,o_Data,Group_Num);print_fun(o_Data,Group_Num);return 0;         } //进行分解处理//1、把输入的数据存储起来 void get_datum(int data[],int group_num)//存放数据于data[],输入的组数 {    int i,j;for(i = 0;i < group_num*2;i++)    {        for(j = 0;j <2;j++)        {    scanf("%d",&data[i+j]);    if(data[i+j] < 1 || data[i+j] > 90000)    {    printf("数据太大!\n");    exit(-1);    }                }    i++;    }}//2、对一个区间的问题进行处理,并存储起来void handler_fun(int in_data[],int out_data[],int group_num)//要处理的数据in_data[],结果out_data[] ,组数group_num {int i,temp,temp_n,temp_i,count = 0;double d;for(i = 0;i < group_num*2;i++)    {         if(in_data[i] > in_data[i+1])        {             temp = in_data[i+1];            in_data[i+1] = in_data[i];            in_data[i] = temp;            }        temp_n = in_data[i];        for(temp_i = 0;temp_i <= in_data[i+1] - in_data[i];temp_i++)//1~4  1,2,3,4        {            d = sqrt(temp_n);            if(d*d - temp_n == 0)            count++;            temp_n++;            }        out_data[i/2] = count;         count = 0;i++;         }} //3、把存储的数据打印出来 void print_fun(int out_data[],int group_num){int i;printf("每组完全平方数的个数分别为:\n");for(i = 0;i < group_num;i++)printf("%d\n",out_data[i]);printf("\n");}




0 0
原创粉丝点击