解题思路:多学数学吧

注意事项:

参考代码:

//尼科彻斯定理
//机器思维
#include<stdio.h>
#include<math.h>
#include<string.h>
void prisum(int * a,int n);
int main(void)
{
    int n;
    int i;
    scanf("%d", &n);
    int a[100000];
    int k = pow(n, 3);
    prisum(a, k);
    printf("%d*%d*%d=%d=", n, n, n, k);
    while(a[i]!= 0)
    {
        printf("%d", a[i]);
        if(a[i+1]!= 0)
        putchar('+');
        i++;
    }
    return 0;
}
void prisum(int * a,int n)
{
    int i, j, k = 0, t;
    int sum;
    for(i = 1; i < n ; i = i+2)
    {
        sum = 0;
        for(j = i; j < n; j = j+2)
        {
            sum+= j;
            k = (j-i)/2+1;
            
            if(sum == n&&pow(k,3)==n)
            goto p1;
        }
    }
    
    
    p1:k = (j-i)/2+1;
    t = i;
    
    for(int c = 0; c < k; c++)
    {
        a[c] = t;
        t = t+2;
    }
}
//人类思维
#include<stdio.h>
#include<math.h>
int main(void)
{
    int n, i, j, k;
    scanf("%d", &n);
    k = pow(n, 3);
    printf("%d*%d*%d=%d=", n, n, n, k);
    int c = n-1;
    j = c*c+c+1;
    for(i = 1; i < n; i++, j = j+2)
    printf("%d+", j);
    printf("%d", j);
    
    
    return 0;
}
//人与机器的结合
#include<stdio.h>
int main(void)
{
    int n;
    scanf("%d", &n);
    int n3 = n*n*n;
    int tag = 0;
    int i, j, sum = 0, flag = 1;
    for(i = 1; ; i = i+2)
    {
        sum = 0;
        for(j = i; j <= i+2*(n-1); j = j+2)
        {
            sum+= j;
            if(sum == n3)
            {
                tag = 1;
                flag = i;
                break;
            }
        }
        if(tag)
        break; 
    }
    printf("%d*%d*%d=%d=", n, n, n,n3);
    for(i = 0; i < n-1; i++)
    {
        printf("%d+", flag);
        flag = flag+2;
    }
    printf("%d", flag);
    return 0;
}


点赞(2)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论